python 基础六 各项小知识点
1、python2 python3的区别:
python2 print() print 'abc' #print时,可以不加括号 range() xrange() 生成器 raw_input() #用户交互 python3 print('abc') # #print时,需要加括号 range() input() #用户交互
2、= == is 三者之间的区别:
# = 赋值 # == 比较值是否相等 # is 比较,比较的是内存地址 是否相等 #ps: id(内容) #id取得的是内存地址 #举例: # li1 = [1,2,3] # li2 = li1 # li3 = li2 # print(id(li1),id(li2))
3、小数据池
注意:小数据池只有int数字和str字符串才有。表示一个数字在一个范围中,他们在内存中只开辟一个内存地址。相同的数据指向的是同一个内存地址。
3.1 数字的范围: -5 -- 256
3.2 字符串:1、不能有特殊字符
2、s*20 还是同一个地址,s*21以后都是两个地址
# i1 = 6 # i2 = 6 # print(id(i1),id(i2)) #输出i1 i2的内存地址 # i1 = 300 # i2 = 300 # print(id(i1),id(i2))
3.3 剩下的list dict tuple set 都没有小数据池的概念
# l1 = [1,] # l2 = [1,] # print(l1 is l2)
4、str 与 bytes 之间的转换
1,各个编码之间的二进制,是不能互相识别的,会产生乱码。
2,文件的储存,传输,不能是unicode(只能是utf-8 utf-16 gbk,gb2312,asciid等)
Python3当中 str在内存中使用的是Unicode编码,但不能直接用于文件的传输与存储,所以需要转换成bytes类型,再转换成utf-8,或者gbk或者gbk2312等。
对于英文: str :表现形式:s = 'alex' 编码方式: 010101010 unicode bytes :表现形式:s = b'alex' 编码方式: 000101010 utf-8 gbk 对于中文: str :表现形式:s = '中国' 编码方式: 010101010 unicode bytes :表现形式:s = b'x\e91\e91\e01\e21\e31\e32' 编码方式: 000101010 utf-8 gbk
s1 = 'alex' # encode 编码,如何将str --> bytes, () s11 = s1.encode('utf-8') s11 = s1.encode('gbk') print(s11) s2 = '中国' s22 = s2.encode('utf-8') s22 = s2.encode('gbk') print(s22)

浙公网安备 33010602011771号