python2默認ascii編碼python
python3默認utf-8編碼函數
二、除法運算
python2 整數相除的結果是一個整數,把小數部分徹底忽略掉,浮點數除法會保留小數點的部分獲得一個浮點數的結果。post
在python3中 對於整數之間的相除,結果也會是浮點數編碼
Python 2.x:code
>>> 1 / 2 0 >>> 1.0 / 2.0 0.5
Python 3.x:對象
>>> 1/2 0.5
三、不等於運算符
Python 2.x中不等於有兩種寫法 != 和 <>blog
Python 3.x中去掉了<>, 只有!=一種寫法繼承
四、數據類型
Py3 去除了long類型,如今只有一種整型——int,但它的行爲就像Py2版本的long內存
五、捕獲異常
python2 捕獲異常的語法: except Exception, eutf-8
python3 except Exception as e
六、unicode字符串
python2中有兩種字符串類型:Unicode字符串和非Unicode字符串。Python3中只有一種類型:Unicode字符串。
python2有兩個函數能夠把對象強制轉換成字符串:unicode()把對象轉換成unicode字符串,還有str()把對象轉換爲非Unicode字符串。Python3只有一種字符串類型,unicode字符串,因此str()函數便可完成全部的功能。
七、print()和raw_print()
在python2中 raw_input( )和input( ),兩個函數都存在,其中區別爲:
- raw_input() 無論輸入什麼都返回字符串類型
- input() 只能接收"數字"的輸入,它返回所輸入的數字的類型(int, float )
在python3中 raw_input( )和input( )進行了整合,去除了raw_input(),僅保留了input()函數,用法與py2中的raw_input()一致
八、range和xrange
py2中range()直接生成列表(量大佔內存死機),py3中只有range( )和py2中還有的xrang( )都只生成一個生成器
九、經典類與新式類
建立類時,py2分爲經典類和新式類,新式類就是繼承object的類,經典類是沒有繼承的類,而py3中所有是新式類,默認繼承object