写在前面:
- 浙江大学 ACM 的 OnlineJudge,练习python语法结构:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1
- leetcode各种编程语言刷题:https://leetcode.com/ 与解答:https://www.jiuzhang.com/solution/
- pycharm(写爬虫做大项目必备)、jupyter notebook+spyder3(数据分析主要IDE),Sublime Text 3(牛逼的编辑器)
- 很多人用不同的环境,比如在python shell中用pip install 安装第三方库 ,在Anaconda中的Anaconda Prompt中用conda install
- 当你发现语法正确,‘int’ object is not iterable.的错误你可以%reset清除环境变量
---PYTHON SHELL
# 导入一个模块
import model_name
# 导入多个模块
import module_name1,module_name2
# 导入包中指定模块
from package_name import moudule_name
# 导入包中所有模块
from package_name import *
输入与输出
name = input("What's your name?")
sum = 100+100
print ('hello,%s' %name)
print ('sum = %d' %sum)
输出
What's your name?cy
hello,cy
sum = 200
raw_input 是 Python2.7 的输入函数,在 python3.x 里可以直接使用 input;
if score>= 90:
print 'Excellent'
else:
if score < 60:
print 'Fail'
else:
print 'Good Job'
所有的语法语句都在句末加上了“:”;
Python 不像其他语言一样使用{}或者 begin…end 来分隔代码块,而是采用缩进和冒号的方式来表明代码之间的关系;
所以,在python中,缩进是非常重要的语法。
sum = 0
for number in range(11):
sum = sum + number
print sum
range(11) 代表从 0 到 10,不包括 11也相当于 range(0,11),range 里面还可以增加步长比如 range(1,11,2) 代表的是 [1,3,5,7,9]。
range(a,b)=
sum = 0
number = 1
while number < 11:
sum = sum + number
number = number + 1
print sum
因此 while 循环适合循环次数不确定的循环,而 for 循环的条件相对确定,适合固定次数的循环。
列表[ ]
列表[]
lists = ['a','b','c']
lists.append('d')
print lists
print len(lists)
lists.insert(0,'mm')
lists.pop()
print lists
运行结果
['a', 'b', 'c', 'd']
4
['mm', 'a', 'b', 'c']
我们可以使用 len() 函数获得 lists 中元素的个数;使用 append() 在尾部添加元素,使用 insert() 在列表中插入元素,原有的元素保留,使用 pop() 删除尾部的元素。对列表修改之后,就生效了,就不可以回退到原始状态了。
元组(),python没有向量
tuples = ('tupleA','tupleB')
print tuples[0]
输出
tupleA
元组 tuple 和 list 非常类似,tuple 一旦初始化就不能修改,可以像访问数组一样进行访问,比如 tuples[0],但不能赋值
字典{ }
# -*- coding: utf-8 -*
# 定义一个 dictionary
score = {'guanyu':95,'zhangfei':96}
# 添加一个元素
score['zhaoyun'] = 98
print score
# 删除一个元素
score.pop('zhangfei')删除key,value就不存在
# 查看 key 是否存在
print 'guanyu' in score
# 查看一个 key 对应的值
print score.get('guanyu')
print score.get('yase',99)
{'guanyu': 95, 'zhaoyun': 98, 'zhangfei': 96}
True
95
99
字典其实就是{key, value},多次对同一个 key 放入 value,后面的值会把前面的值冲掉,同样字典也有增删改查。增加字典的元素相当于赋值,比如 score[‘zhaoyun’] = 98(将value赋值给key,并不是重新给字典进行定义),删除一个元素使用 pop,查询使用 get,如果查询的值不存在我们也可以给一个默认值,比如 score.get(‘yase’,99)。
集合 set
s = set(['a', 'b', 'c'])
s.add('d')
s.remove('b')
print s
print 'c' in s
set(['a', 'c', 'd'])
True
集合 set 和字典 dictory 类似,不过它只是 key 的集合,不存储 value。
引用模块 / 包:import
# 导入一个模块
import model_name
# 导入多个模块
import module_name1,module_name2
# 导入包中指定模块
from package_name import moudule_name
# 导入包中所有模块
from package_name import *
一个包可以包含多个模块;
import 引用可以是模块 module,或者包 package。针对 module,实际上是引用一个.py 文件。而针对 package,可以采用 from … import …的方式,这里实际上是从一个目录中引用模块,这时目录结构必须带有一个 __init__.py 文件。
函数def
def addone(score):
return score + 1
print (addone(99))
运行结果
100
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号,在圆括号里是传进来的参数,然后通过 return 进行函数结果得反馈。
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1
这是浙江大学 ACM 的 OnlineJudge。
这里给你介绍这个 OnlineJudge 是因为:1可以在线得到反馈,提交代码后,系统会告诉你对错;
2有社区论坛可以进行交流学习;
3对算法和数据结构的提升大有好处,当然对数据挖掘算法的灵活运用和整个编程基础的提升都会有很大的帮助。
写在最后:
我们在日常工作中,做的是开发而不是科研,所以主要提升的是熟练度!!!
看到最后不容易,将图丢出来,大家一起分享,一起进步!