编码:
编码常用函数:
'中文'.encode('utf-8') 将中文编码成utf-8 的二进制流
b'\xe4\xb8\xad\xe6\x96\x87'
b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')将二进制流解码成中文
‘中文'
list=[]
tuple=()---tuple不可以增加和减少对象(该对象也不可变。但是不代表其对象指向的内容也不可变。
L=[]
LL=(L)
L.append(3)
LL
[3]
LL=(L,)
LL
([3],)
L.append(4)
LL
([3, 4],)
dict={'key1':value1,'key2':value2}
可以使用dict['key1']来查询其值。
也可以在for x in dict 来轮询(x 代表 key值)
如果要查询value 可以用 for x in dict.values()
如果要一起 for x,y in dict.items()
set={1,2,3,4}
set=set(list)
set 中的所有元素不重复。(集合)
条件语句:
if xxx:
[]xxxxx //[]表示缩进
elif xxx:
[]pass
else:
[]pass
循环语句:
for x in d:
[] pass
[] break
[] continue
while true:
[]pass
函数的定义:
def func(para):
[]pass
函数参数有一下几种:
位置参数: like func(a,b,c) 调用函数时候必须匹配。
默认参数: like func(a,b,c,age=3,name='mao')
可以调用为 func(3,4,5),func(3,4,5,6)...
可变参数: like func(*args)
可以调用为: func(3,4,5,6,7,8) 其中参数被副本化为一个tuple.
关键字参数(dict) like func(*args)
类似使用 func(a=4,b="3") 被传入当作一个dict。
命名关键字操作 like func(,city,age)
used like func(city='hangzhou',age=3)
函数递归:
在函数中调用函数
高级特性:
切片:
性质1 L=[] ,L=[1:2]=[],然后,L[0] takes Err
性质2 L[:2]取 0,1两个元素 L[-2:-1] takes L[-2] and L[-1:] takes last.
切片的结果还是 list ,tuple,str....
Iteration:对于高级数据对象(list,dict,tuple,set?)的遍历,称为迭代。
for x in D...
for x,y in D...
from collections import Iterable
isinstance(L,Iterable)..判别该对象是否可以Iterable.
Iterable 相关功能:
list 加 enumerate(list) 将list 增加编号。
dict.values() 形成一个值的集合。
dict.items() 形成一个key,值的集合集。
List Comprehensions
L=[a,b,c,d]
LL=[ func(x) for x in L] 生成一个新的List。
LL=[func(x,y) for x in L1 for y in L2)]
['{0}*{1}'.format(x,y) for x in range(2) for y in range(3) if x+y>1 ]
['0*2', '1*1', '1*2']
generator:
性质1: 可以通过next(o) 获取其下一个值,直到StopIteration错误。
使用这个办法打印杨式三角
def triangle(max):
n,s=0,[]
while n
for x in s:
t.append(x+last)
last=x
t.append(1)
s=t
yield s
n=n+1
我们已经知道,可以直接作用于for循环的数据类型有以下几种:
一类是集合数据类型,如list、tuple、dict、set、str等;
一类是generator,包括生成器和带yield的generator function。
这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。
可以使用isinstance()判断一个对象是否是Iterable对象:
生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。
把list、dict、str等Iterable变成Iterator可以使用iter()函数:
通过iter()函数 把其变为 iterator.
map is used to from one iterator to another iterater.
map(f,Iterable) f should return a value.
reduce(f,Iterable) f should accept 2 para,and return a value.
列子:用于大写第一个字母:
def normalize(s):
return s[:1].upper()+s[1:].lower()
print(list(map(normalize,['XYC','abc'])))