python2.7過渡到python3.6時遇到的差別總結

版權聲明:本文爲博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接和本聲明。
本文連接:http://www.javashuo.com/article/p-rorualgl-s.htmlhtml

 

*** python2.7版本只支持到2020年1月1日 ,建議新學習者安裝python3版本。python

 

 1.2.1 終端輸入區別

 

Python2.7:

(1)input() 能夠自動判斷其類型,即輸入什麼類型的數據,就是什麼類型,沒有引號的英文字符會被判斷爲變量,會在全文中找對應的變量。若是str類型必須加單引號或者雙引號,否則類型不對,報錯;

(2)raw_input() 輸入全部數據都按照str類型處理,若是是整形輸入,使用時要str轉int,用(int)強制轉換;

Python3.6:python2.7


python3將raw_input和input進行了整合,只有input,輸入的爲str函數


(1)input() 輸入全部數據都按照str類型處理,若是是整形輸入,使用時要str轉int,用(int)強制轉換;

(2)raw_input() 再也不使用; post

 

1.2.2 print區別

 

Python2.7:print 爲class ,後面直接跟打印數值;

Python3.6:print() 爲函數,打印數值必須用括號括起來;學習

 

1.2.3 編碼區別

 

Python2.7:默認ASCII處理字符(字符串以8-bit存儲),所以使用漢字前加# -*- coding:utf-8 -*- ;

Python3.6:所有用的是Unicode(萬國碼、統一碼固定2字節,字符串以16-bit 存儲)字符集,utf-8(可動態變化1-6字節,en:1byte  zh:3bytes) 是對Unicode的壓縮和優化,所以支持中文;優化


 1.2.4 字符串編碼區別

 

Python2.7:在Python2中,做爲兩種類型的字符序列,str與unicode須要轉換,它們是這樣轉換的.
str——decode方法——》unicode——encode方法——》str   u'string'        ui

 

Python3.6:在python3中能夠這樣對應這轉換,配合上面的圖,也許會好理解一點。
byte——decode(解碼)方法——》str——>encode(編碼)方法——》byte   b'string'   
編碼

 

 1.2.5 真除、整除區別

 

Python2.7:帶上小數點/表示真除,%表示取餘,//表示地板除(結果取整);url


Python3.6:/表示真除,%表示取餘,//表示地板除(結果取整);
 

 1.2.6 range、xrange區別

 

Python2.7:range()生成一個列表,xrange()生成一個生成器;


Python3.6:list( range(0,4) )列表,range()生成一個生成器,xrange()再也不使用;

python3中沒有了xrange,python3的range就是xrange,也就是說range()返回的再也不是一個列表而是一個class,若是要獲得列表須要list(),for i in range(3)照樣能夠這樣使用

 

 1.2.7 字典類方法區別

 

Python3.6:字典的items()和keys()返回的再也不是一個列表而是一個class,須要用list()轉換爲list;

python3中字典類方法has_key()也再也不支持,用運算符處理,eg:'abc' in dic

 1.2.8 打開文件區別

 

Python2.7:file()、open()均可打開文件;


Python3.6:file()再也不使用,只用open()打開文件;

 

 1.2.9 八進制標識區別

 

Python2.7:八進制以數字0開頭,例如oct(64)0100

Python3.6:八進制:以數字0開頭,第二位用字母o,後面跟上你的八進制數,例如oct(64)0o100

  • 之前確實是用 \o ,但新版本爲了防止字母 o 與數字 0 之間產生混淆,捨棄了字母 o 這個前綴
  • 這就解釋了爲何 \x 還在用,而 \o 改成 \

在python2.7中可使用os.chmod("/tmp/foo.txt", 777),但切換到python3.6中這樣使用會報錯,正確的使用應該是os.chmod("/tmp/foo.txt", 0o1411)

 

參考連接:

python2.7和python3.6經常使用區別 

python2.7過渡到python3.6時遇到的差別總結  

[Python3 填坑] 004 關於八進制  

相關文章
相關標籤/搜索