廖雪峰书籍笔记
十六进制编码表示
bytes类型的数据表示
list操作[]
元素个数len()
索引访问
-1
列表方法
删除 pop()
tuple 元组()
为了消除歧义,只有一个元素的元组定义使用(1,),即在元素末尾多添加一个逗号
dict 字典 key value
判断键值是否存在
'key' in dict
dict.get('key')
dict.get('key',-1)
set 和dict类似,也是一组key的集合但不存储value
函数中的默认参数的好处和使用方法
def enroll(name, gender, age=6, city='Beijing'):
print('name:', name)
print('gender:', gender)
print('age:', age)
print('city:', city)
函数中使用可变参数
可变参数使用可变列表/元组传入数据
函数中使用关键字参数
*args 是可变参数,args接收的是一个tuple
**kw 是关键字参数,接收的是一个dict
递归函数 函数在内部调用函数自身本身
会导致栈溢出,解决办法是使用尾递归。但不会彻底解决栈溢出问题
切片
迭代 只要是可迭代对象都可以进行迭代(Iterable)
可以通过collection模块的Iterable类型判断:
>>> from collections import Iterable
>>> isinstance('abc', Iterable)
True
>>> isinstance([1,2,3], Iterable)
True
>>> isinstance(123, Iterable)
False
enumerate函数可以把list变成索引-元素对
>>> for i, value in enumerate(['A', 'B', 'C']):
... print(i, value)
...
0 A
1 B
2 C
isinstance函数判断是否为字符串
>>>x='abc'
>>>isinstance(x,str)
True
列表生成式 [x*x for x in range(10)] 返回值
生成器 (x*x for x in range(10)) 返回算法generator
若函数定义中包括yield关键字,那么这个函数就成为了generator
迭代器 Iterator
函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂的任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。
高阶函数
传入函数
高阶函数
map()
map(f,[x1,x2,x3,x4])=[f(x1),f(x2),f(x3),f(x4)]
reduce()
reduce(f,[x1,x2,x3,x4])=f(f(f(x1,x2),x3),x4)
filter()函数用于过滤序列,从一个序列中筛选出符合条件的元素。
sorted()排序算法
返回函数
闭包
当一个函数返回函数时调用了内部函数,就成为闭包,只有在调用的时候才会返回值(注意不要返回带变量的函数)
匿名函数
lambda x:x*x
装饰器
偏函数 创建一个固定内置函数某个参数的函数,简化调用操作
函数也是一个对象