day 6 - 1 知识点小节

python2 与 python3 的区别

1. print、input、生成器

#python2
print()  print 'abc'
range()   xrange() 生成器
raw_input()

#python3
print('abc')
range()
input()

2.知识点小节

 = 赋值

== 比较值是否相等  

is 比较,比较的是内存地址  

id(内容)

li1 = [1,2,3]
li2 = li1
li3 = li2
print(id(li1),id(li2))

数字,字符串 小数据池
数字的范围 -5 -- 256
字符串:
1,不能有特殊字符
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、uple、set

l1 = [1,]
l2 = [1,]
print(l1 is l2)

s = 'alex'
s1 = b'alex'
print(s,type(s))
print(s1,type(s1))

s = '中国'
print(s,type(s))
s1 = b'中国'
print(s1,type(s1))

编码

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)
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。。。。

猜你喜欢

转载自www.cnblogs.com/ysging/p/9874647.html