標籤:raw_input python 賦值 log 字串 預設 資料 asc 不能
python2和python3的區別
1.編碼:
python2預設的編碼是ascii碼,python3預設的編碼是utf-8
2.print:
python2.7列印的時候可以不加括弧,python3列印必須加括弧 否則報錯
3.range:
python2中是xrange,python3是range
4.input:
python2中是raw_input python3中是input
=,==和is的區別
=是賦值符號
==是比較符號比較值是否相等
is比較的是記憶體位址
小資料池 (為了節省記憶體)
數字
範圍:-5--256
x=10y=25print(id(x),id(y)) x和y的記憶體位址是相同的數位有效範圍是-5到256:如果倆個變數的取值範圍都在-5到256之間 那麼它們的記憶體位址相同
字串
具體的範圍還不確定,但是有一些規律可以參考
1.字串中 不能含有特殊字元
s1=‘alex‘s2=‘alexprint(s1 is s2)------>True s3=‘[email protected]‘s4=‘[email protected]‘print(s3 is s4) ------>False
2
字串一個字元相乘,前20個範圍內是同一個記憶體位址:s1=‘h‘*20s2=‘h‘*20print(s1 is s2)--->True字串一個字元相乘,超出20範圍的是同倆個記憶體位址:s1=‘h‘*21s2=‘h‘*21print(s1 is s2)--->False
其他資料類型
list dic tuple set 都沒有小資料池這個概念
以list為例:l1=[1,]l2=[1,]print(l1 is l2)--->False
編碼
ASCII
沒有中文 只有英文 一個位元組(bytes)==8個位(bit)
Unicode
英文: 32個位 4個位元組
中文: 32個位 4個位元組
utf-8
英文: 8個位 1個位元組
中文: 24個位 3個位元組
GBK
英文: 8個位 1個位元組
中文: 16個位 2個位元組
1.各個編碼之間的二進位是不能相互識別的 ,會產生亂碼
2.檔案的儲存 傳輸不能是Unicode(只能是utf-8 utf-16,gbk,gb2312...)
python基礎小知識點補充及編碼