小知识点总结

1.python2   python3的区别

 

Python2 与python3 的区别

 

Python2

Python3

print

Print’a,b,c’

Print(‘a,b,c’)

range

range()    xrange()

range

input

raw_input()

input()

宏观

python2X源码重复率高,不规范

python崇尚简单、优美、清晰。规范化。


2.比较

比较

=

赋值

==

比较的是值否相等

Is

比较的是内存地址

 

3.数字, 字符串的小数据池


小数据池是指在一定范围或程度中节省内存空间。

  数字的范围 -5 -- 256 之间创建多个用一个ip地址。


  字符串:1.不能含有特殊字符。

      2.s*20 还是用一个地址, s*21以后都不是同一个地址(1个字符)。

  剩下的 list dict tuple set没有小数据池。


4.编码 python3当中的


ascii:
  A: 00000010
   8位 1字节
unicode:
  A: 00000000 00000001 00000010 00000100
    32位 4字节
  中: 00000000 00000001 00000010 00000110
utf-8:
  A: 0010 0000
    8位 1字节
  中: 00000001 00000010 00000110
      24位 3字节
gbk:
  A:00000110
       8位 1字节
  中:00000010 00000110
           16位 2字节

1.各个编码之间的二进制,是不能互相识别的,会产生乱码。

2.文件的储存,传输,不能是Unicode(只能是utf-8,utf-16,gbk,ascii,等)

python3   str与bytes的区别

str 在内存中是用Unicode编码的。

bytes类型(数据类型) 除了Unicode编码之外都可以。

对于英文:
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'(16进制)
      编码方式: 000101010 utf-8 gbk等等

 encode (编码如何将str转换成--->bytes类型)

str = 'sole'
print(str.encode('gbk'))   #使str转换成bytes类型,默认编码是utf-8

 decode(解码如何将bytes类型转换成--->str)

decode('utf-8')   #用什么编码就用什么解码
    #如果字符串里面全是字母,gbk是不报错的

 

posted on 2017-12-21 19:18  Kindergarten_Panda  阅读(262)  评论(0编辑  收藏  举报