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 324字节

 00000000 00000001 00000010 00000110 324字节

 

Utf-8

A  0010 0000 8位 一个字节

00000001 00000010 00000110 243字节

 

Gbk

A 00000010 1字节 8位 一个字节

00000010 00000110 162个字节

 

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-8gbk2个字节)

编码方式: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

 

posted @ 2017-12-21 19:06  大量子  阅读(122)  评论(0编辑  收藏  举报