python学习day6 小知识点、编码

python2 python3的一些区别

#python2
print 'abc'   #print不需要加括号
range()   xrange() 生成器
raw_input()  #输入

#python3
print('abc')
range()   #只有这一个range
input()
== 比较值是否相等   is 比较,比较的是内存地址  id(内容)
li1 = [1,2,3]
li2 = li1
li3 = li2
print(id(li1),id(li2))  #地址相同

为了节省内存,以下情况下会共用一个内存:

1.小数据池 -5--256

2.字符串,但是中间不能含有特殊字符,s*20之前是同一个地址 s*21以后都是两个地址

i1 = 6
i2 = 6
print(id(i1),id(i2))  #地址相同
i1 = 300
i2 = 300
print(id(i1),id(i2))  #地址不同

list dict tuple set 相同内容的内存都不一样

编码

ascii 

A :  00000010 8位 一个字节

unicode 

 A :  00000000 00000001 00000010 00000100 32位 四个字节

中:00000000 00000001 00000010 00000110 32位 四个字节

utf-8 

 A :   00100000                                      8位 一个字节

中 :   00000001 00000010 00000110  24位 三个字节

gbk

 A :  00000110                     8位 一个字节

中 :  00000010 00000110  16位 两个字节

1,各个编码之间的二进制,是不能互相识别的,会产生乱码。
2,文件的储存,传输,不能是unicode(太大了),只能是utf-8 utf-16 gbk,gb2312,asciid等

 

py3:
str 在内存中是用unicode编码。
转换成bytes类型可以和文件交流操作
对于英文:
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。。。。

 bytes类型

s = 'alex'
s1 = b'alex'
print(s,type(s))          #str
print(s1,type(s1))      #bytes

s = '中国'
print(s,type(s))
s1 = b'中国'
print(s1,type(s1))   #会报错
如何将str --> bytes
## encode 编码
s1 = 'alex'
s11 = s1.encode('utf-8')
s11 = 'alex'.encode('gbk')
print(s11)
s2 = '中国'
s22 = s2.encode('utf-8')
s22 = s2.encode('gbk')
print(s22)

 转换

(1) Int与str之间如何转化,转换的结果是什么?有没有条件?

int ---->> str
数字类型变为字符串类型,没有条件,直接用str()
str ----->> int
字符串类型变为数字类型,必须得为纯数字,int()

(2) Int与bool之间如何转化,转换的结果是什么?有没有条件?

int ---->> bool
0为false 其余为True
bool----->> int
false 对应0,True 对应1

(3) str与bool之间如何转化,转换的结果是什么?有没有条件?

str ----->> bool
""时为false,其余都为True
bool ----->> str
True 为字符串True
False 为字符串False

(4) str与list能否转化?如何转化?

str ------>> list
list(str类型)为迭代的字符串列表
list ------>> str
str(list类型)内容不变,类型变为str,可以用strip删除中括号
posted @ 2018-10-08 18:37  xyfun72  阅读(146)  评论(0编辑  收藏  举报