Python 2とPython 3の違い

6012 ワード

前に書きます:現在使用しているバージョンはPython 3が多いですが、2つのバージョンの違いはやはり勉強して、その後の仕事の面接に対応する必要があります.
print関数
Python 2バージョンではprintはキーワードで、3つの方法が等価です.
print "fish"
print ("fish") #  print      
print("fish") #print()          
python 3ではprint()関数を使用して出力し、2つのバージョンの入力inputにも違いがあります.
Unicode(万国コード)
Python 2にはASCII str()タイプがあり、unicode()は単独でbyteタイプではありません.Python 3では、Unicode(utf-8)文字列と、byteとbytearraysというバイトクラスがあり、Python 3ソースファイルはutf-8符号化がデフォルトで使用されています.
Python 2
>>> str = "       "
>>> str
'\xe6\x88\x91\xe7\x88\xb1\xe5\x8c\x97\xe4\xba\xac\xe5\xa4\xa9\xe5\xae\x89\xe9\x97\xa8'

>>> str = u"       "
>>> str
u'\u6211\u7231\u5317\u4eac\u5929\u5b89\u95e8'#  u     
Python 3
>>> str = "       "
>>> str
私は北京の天安門が好きです.
除算演算
Pythonの除算には2つの演算子があり、従来の除算/床除//、先に/除算はpython 2で、/除算、整数を除いた結果は整数で、小数部を完全に無視し、浮動小数点数除算は小数点の部分を残して浮動小数点数の結果を得る.
>>> 1 / 2
0
>>> 1.0 / 2.0
0.5
python 3では、/除算は行われず、整数間の除算でも結果は浮動小数点数になります.
>>> 1/2
0.5
>>> 1.0 / 2.0
0.5
一方、床除法//については、この除法をfloor除法と呼び、除法の結果に対して自動的にfloor操作を行い、python 2.xとpython 3.xで一致し、床除floorは下向きに整頓され、上向きに整頓されてceil、floor()とceil()はmathモジュールの関数であり、import mathを呼び出して実現することができ、床除//デフォルトで下向きに整頓される.商の整数部分を得るにはmathモジュールのtrunc()関数を利用し,truncはint()関数に等価である.Python 2
>>> 1//2
0
>>> -1//2
-1
Python 3
>>> 1//2
0
>>> -1//2
-1
trunc
>>> import math
>>> math.trunc(1 / 2)
0
>>> math.trunc(-1 / 2)
0
異常処理
Python 2で
try:

except exc, var#     ,   
Python 3中
try:#        , tryexcept    

except exc as var:#   ,    as   ,    exc   var

else:#     ,      

finally#        ,       ,      
Pythonプログラムに異常エラーはなく、raiseを使用して異常を起こしたい
ふとうえんざんし
Python 2.xには2つの書き方があるわけではありません!=と<>Python 3.xの中にしかありません!=一つの書き方
8進字面量表示
Python 3.xでは、8進数の字面量を表す方法は1つだけで、0 o 1000です.python 2.x
>>> 0o1000
512
>>> 01000
512
python 3.x
>>> 0o1000
512
>>> 01000#         
  File "", line 1
    01000
        ^
SyntaxError: invalid token
後は個人にとってそれほど重要ではありません.主に除算演算、異常処理、入出力の違いです.