python2、python3 的區別及小數據池
一、python2 與python3的區別
1、print python2中輸出的格式為:print‘‘ python3輸出為print()
2、在python2中xrange是個生成器,可以轉化成range,在python3中直接是range
3、在python2中用戶交互是raw_input,在python3中是input.
二、關於內存地址(只有數字和字符串才有小數據池, = 是賦值,==是比較的是值,is 是比較,比較的是內存地址 )
關於 is 比較內存地址的情況:
1、
2、數字:在數字 -5---256範圍內,共用相同的id(也就是如果在這個範圍內,a ,b 分別被賦予相同的值的話,那麽他們的內存地址相同)
3、字符串:
1)不能有特殊字符串
2)s*20還是同一個地址,s*21以後就是兩個內存地址了
三、python2 和 python3 通用的編碼方式
1、utf-8編碼方式: 英文 :A 00100000 8位 1字節
中文: 中 00000001 00000010 00001110 24位 3 字節
2、gbk 英文: A 00000110 8位 1字節
中文: 中 00000010 00000110 16位 2字節
各個編碼之間二進制,是不能互相識別的,會產生混亂
文件之間的儲存、傳輸、不能用unicode碼(因為所占用的空間太大),只能用utf-8、utf-16 、gbk 、gb2312、ascii碼
3、str在python中是用unicode碼,還有一種是bytes 類型
英文 str: 表現形式 s = ‘alex‘
編碼方式 0101010101 unicode
bytes:表現形式 s = b‘alex‘
編碼方式 00101010 utf-8 gbk
中文 str: 表現方式 s= ‘中國‘
編碼方式 01010110 utf-8 gbk
bytes: 表現方式 b‘x\e91\e91\e01\e21\e31\e32
編碼方式 01001100 utf-8 gbk
encode 編碼 用於將utf-8轉化成bytes
python2、python3 的區別及小數據池