enumerate,for i in enumerate(可迭代对象),返回元组,内容是(序列号,可迭代的每一个元素)
for i,j in enumerate(可迭代对象,开始序列号),返回序列号,可迭代的每一个元素
a = ‘abc‘ b = {‘a‘:1,‘b‘:2} for i in enumerate(a): print(i) #输出: #(0, ‘a‘) #(1, ‘b‘) #(2, ‘c‘) for i,j in enumerate(a,1): print(i,j) #输出: #1 a #2 b #3 c
==比较的是值,is 比较的是内存地址
小数据池:int:-5~256
str:1.不能有空格
2.长度不能超过20
3.不能有特殊字符
a = [] b = [] print(a == b,a is b) #True False a = ‘abc‘ b = ‘abc‘ print(a == b,a is b) #True True a = ‘-6‘ b = ‘-6‘ print(a == b,a is b) #True False
在python3中,str的表现形式为字符串,bytes的表现形式为b字符串,str的实际编码方式是unicode,bytes的编码方式是utf-8、gbk、gb2312...
在python3中,unicode:1个字符(无论中文、英文、数字),都用4个字节表示
utf-8:用最少的字节表示一个字符,英文占1个字节,欧洲文字占2个字节,亚洲文字占3个字节
gbk:英文占1个字节,中文占2个字节
在python3中,字符串存在内存中是unicode编码方式,不能直接传输或者存储在硬盘,要转成bytes类型,unicode转bytes:a.endode(‘编码方式‘),bytes转unicode:a.decode(‘编码方式‘)
utf-8和gbk、gb2312等编码方式互不识别,如果要转化,要先解码(decode)成unicode方式,再编码(encode)成对应的方式。
a = ‘abc‘ b = a.encode(‘utf-8‘) print(b,type(b)) #b‘abc‘ <class ‘bytes‘> a = ‘你好‘ b = a.encode(‘utf-8‘) print(b,type(b)) #b‘\xe4\xbd\xa0\xe5\xa5\xbd‘ <class ‘bytes‘> c = b.decode() print(c,type(c)) #你好 <class ‘str‘> d = c.encode(‘gbk‘) print(d,type(d)) #b‘\xc4\xe3\xba\xc3‘ <class ‘bytes‘>
原文:http://www.cnblogs.com/Coufusion/p/7750676.html