python2與python3區別

python2與python3區別

一、字符編碼

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

相關文章
相關標籤/搜索