版權聲明:本文爲博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接和本聲明。
本文連接:http://www.javashuo.com/article/p-rorualgl-s.htmlhtml
*** python2.7版本只支持到2020年1月1日 ,建議新學習者安裝python3版本。python
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
Python2.7:print 爲class ,後面直接跟打印數值;
Python3.6:print() 爲函數,打印數值必須用括號括起來;學習
Python2.7:默認ASCII處理字符(字符串以8-bit存儲),所以使用漢字前加# -*- coding:utf-8 -*- ;
Python3.6:所有用的是Unicode(萬國碼、統一碼固定2字節,字符串以16-bit 存儲)字符集,utf-8(可動態變化1-6字節,en:1byte zh:3bytes) 是對Unicode的壓縮和優化,所以支持中文;優化
Python2.7:在Python2中,做爲兩種類型的字符序列,str與unicode須要轉換,它們是這樣轉換的.
str——decode方法——》unicode——encode方法——》str u'string' ui
Python3.6:在python3中能夠這樣對應這轉換,配合上面的圖,也許會好理解一點。
byte——decode(解碼)方法——》str——>encode(編碼)方法——》byte b'string' 編碼
Python2.7:帶上小數點/表示真除,%表示取餘,//表示地板除(結果取整);url
Python3.6:/表示真除,%表示取餘,//表示地板除(結果取整);
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)照樣能夠這樣使用
Python3.6:字典的items()和keys()返回的再也不是一個列表而是一個class,須要用list()轉換爲list;
python3中字典類方法has_key()也再也不支持,用運算符處理,eg:'abc' in dic
Python2.7:file()、open()均可打開文件;
Python3.6:file()再也不使用,只用open()打開文件;
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)
參考連接: