注:此博客的中英文标点暂时懒得区分了,QAQ。。。
此人博客不值钱,要就随便拿去,但注意标明出处
一 python基础
- 整数运算最精确,浮点数可能会有四舍五入的误差
- python中,r’…’,’ ‘中间的字符串不进行转义
print(’’‘line1
line2
line3’’’)用此格式可以省去\n
and,or,not 分别标识:与,或,否 - if 后 一定要记得加冒号!!!
- python中没有真正意义上的常量,通常用大写字母来表示一个常量
- /为除法,//为地板除法(只取整数)
- ‘Hi,%s,you have %d money’%(‘Lingchao’,500)
在一个字符串中,用%%来表示%
format()用法:
‘Hello,{0},成绩提升了{1:lf}%’,format(‘小明’,17.1345)
->‘Hello,小明,成绩提升了17.1%’
list:有序的集合,可以随时删除和添加其中的元素
classmates=[‘AAA’,‘BBB’,‘CCC’]
classmates[1]:‘BBB’
classmates[-1]:‘CCC’
classmates.append(‘DDD’)
classmates.insert(1,‘EEE’) -> 在1处插入‘EEE’
list中pop(),pop(x)删除x位置的元素,pop*()删除末尾的元素
list中的数据类型完全可以不同,他的元素也可以是list
tuple:与list相似,初始化后不可变
t=(1,) 当tuple中只有一个元素时,这个元素后要加逗号,避免误解
names=(‘A’,‘B’,‘C’)
for name in names:
names中的元素迭代赋值给name
range(10),生成[0,10)的整数序列
dict:字典,使用“键-值”的方式储存 使用哈希算法
获取value值,1:dict[‘key’]
2:dict.get(‘key’)
dict={‘A’:1,‘B’:2,‘C’:3}
‘key’ in dict,判断key值在dict中是否存在
get()方法,get(‘A’,-2)不存在则自己制定value
get(‘A’)不存在则返回none
set:与数学上的集合基本相同,不允许有重复元素,无序
s=([1,2,3]),传入的参数为一个list
add()方法,添加元素
remove()方法,删除元素
二 函数
函数名为对一个函数对象的引用,所以可以赋值给另一个变量
def 函数名(参数1,参数2...):
PS:python中一定要注意冒号和缩进的问题!!!哭。。。
默认参数:
power(x,n=2,s='ABC'),n和s为默认参数
不指定n和s则使用默认值
默认参数必须指向不可变对象!!!
不可变对象:int,float,str,tuple,boole
可变对象:list,set,dict
def calc(*numbers): 调用方式:calc(1,2,3)
def calc(numbers): 调用方式:calc([1,2,3])
def calc(*___),可变参数
def calc(**____)关键字参数
关键字参数:
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
可以只传入必选参数,也可以传入任意个数的关键字参数,和可变参数类似,也可以先组装出一个
dict,然后,把该dict转换为关键字参数传进去
命名关键字参数
如果要限制关键字参数的名字,就可以用命名关键字参数,例如,只接收city和job作为关键字参
数
def person(name, age, *, city, job):
print(name, age, city, job)
和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字
参数
如果函数定义中已经有一个可变参数,后面跟着的命名关键字参数就不再需要特殊的分隔符*
命名关键字参数必须传入参数名!
三高级特性
切片
L = [‘Michael’, ‘Sarah’, ‘Tracy’, ‘Bob’, ‘Jack’]
>>> L[0:3]
[‘Michael’, ‘Sarah’, ‘Tracy’]
如果第一个索引是0,还可以省略:
>>> L[:3]
[‘Michael’, ‘Sarah’, ‘Tracy’]
>>> L[-2:-1]
[‘Bob’]
迭代
for x in y:
列表生成式:
[x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]
生成器
生成器保存的是一个算法,generator和函数的执行流程不一样。函数时顺序执行,遇到return语
句或者时最后一行函数语句就返回。而变成generator的函数,在每次调用next()的时候执行,遇
到yield语句返回,再次执行时从上次返回的yield语句处继续执行
迭代器