python Day-6
简易购物车思路:
小知识点:
提示:程序中的条件判断语句最好做成动态的(使用广泛的 不管先觉条件怎么变都没问题)!!!
Gbk 英文 1个字符 中文2个字符
Python2 python3 区别
Python2 python3
输出不加括号也行 只能加括号
有xrange()生成器 只有range()
Raw_input() input()
=赋值 ==比较值是否相等 is比较内存地址 id(内容)内容=打印的id
赋值运算来说都是同一地址(id一样)
小数据池:节约机制
范围小的用一个 大的不一样
数字的范围-5 - 256
字符串
1 不能含有特殊字符
2 s*20还是同一个 s*21以后就是2个了 一个字符s
数字 字符串
I1 = 6
I2 = 6
两个的id是一样的!!!
I1 = 300
I2 = 300
两个id是不一样的!!!
剩下的list dict tuple set 没有小数据池的概念
Python3中的编码
Ascii
A 00000010 1字节 8位 一个字节
Unicode 都用32位 不用老的16位了
A 00000000 00000001 00000010 00000100 32位 4字节
中 00000000 00000001 00000010 00000110 32位 4字节
Utf-8
A 0010 0000 8位 一个字节
中 00000001 00000010 00000110 24位 3字节
Gbk
A 00000010 1字节 8位 一个字节
中 00000010 00000110 16位 2个字节
1 各个编码之间的二进制 是不能互相识别的 会差生乱码
2 文件的储存和传输 不能使unicode只能utf-8 -16 gbk gb2312 ascii等
以上python 2 3 通用
Python3:
str 在内存中是用unicode编码的 要转化 要不不能传输
Bytes类型(也是一种数据类型)不是用unicode编码的 和str很像
对于英文:
Str:
表现形式 s =’alex’
编码方式: 01010101 unicode
Bytes:
表现形式:s= b’alex’
编码方式:000101010 utf-8 gbk...
对于中文:
表现形式 s =’中国’
编码方式: 01010101 unicode
Bytes:
表现形式:s= b’x\e91\e92\e43.......’(utf-8) \e91一个字节 3个字节表示一个中文 可以区分utf-8和gbk(2个字节)
编码方式:000101010 utf-8 gbk...
报错
英文
S1 = ‘alex’
encode编码 如何将str-bytes
S11 = s1.encode(‘utf-8’)(转化编码方式)
Print(s11) ------b’alex’
中文
S1 = ‘中国’
encode编码 如何将str-bytes
S11 = s1.encode(‘utf-8’)(转化编码方式)
Print(s11) ------b’x\e91\e92\e43.......’ 看字节数就能看出编码方式 6个是utf-8 4个的是gbk