1. 程式人生 > >day 6 - 1 知識點小節

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