Articles

Python 2と3の主な違い:変更をナビゲートする方法

このチュートリアルでは、以下のトピックを取り上げます。

  1. 印刷オプション
  2. 不等号演算
  3. 範囲
  4. 自動移行
  5. パフォーマンスの問題
  6. いくつかの主要なハウスキーピングの変更
  7. 問題がありますか?

式は、数字や文字列、クラスのインスタンスなど、何かを表します。 すべての値は式です。 何かを実行するものはすべてステートメントです。 変数への代入や関数の呼び出しはすべてステートメントです。 そのステートメントに含まれるすべての値は、式です。

Python 2で評価された式を取得するには、次のように入力します:

X = raw_input ("enter some values)

しかし、Python 3では、次のように入力する必要があります:

X = input ("enter some values") 

つまり、値として入力したものは、2と3の両方で変数xに割り当てられます。

しかしながら、この同じプログラムをPython3で実行すると、結果は文字列になります。

では、どうすれば評価された式を得ることができるでしょうか。 ここでは、evalという式または関数を使用します。入力の前にevalを記述すると、式が評価された値になります。

x= eval(input("enter some values")) = 12 

詳細な式の例:

Python2では以下のようになります。

name = input("What is your name? ")print ("Hello, %s." %name) 

そして、出力:

python

Python 3では以下のようになります。

name = input("What is your name? ")print ("Hello, %s." %name) 

そして出力:

python

はっきりとわかるように、この2つにはほとんど違いがありません。

あわせて読みたい。 プログラミング言語「Python」の紹介

Guido van Rossum氏がPythonを開発したとき、彼は他のシステムの脆弱性を回避する「シンプルな」プログラミング言語を作りたいと考えていました。 シンプルな構文と洗練された構文表現により、この言語は機械学習などの様々な科学的アプリケーションの標準となっています。

Printオプション

Python 2では、printは括弧を必要としない文です。 Python 3では、printは関数であり、値を括弧内に記述する必要があります。

Python 2

入力:

print "hello world" 

出力:

python

Python 3

入力です。

1 != 1.0print (False) 

Output:

python

不等号演算

3つ目の違いに移りましょう。 Python 2で不等号演算子を使うときは、great than >または less than <の記号を使う必要がありました。 しかし、Python3では一般的な演算子があります。

Python 2 – <> 演算子は等しくない場合に使われます
Python 3 – ! 演算子は等しくないときに使われます

Python 2

入力:

1 <> 1.0print "False" 

出力。

PYTHON

Python 3

Input:

1 != 1.0print (False)1 != 1.0print (False) 

Output:

SEE ALSO: Glances。

範囲

さて、範囲に目を向けてみましょう。

python

ここでは、Xがレンジ10に等しいことがわかります。 変数Xを確認すると、リスト型が返ってきました。 これは、Python 2では、rangeがリストの型であることを意味しています。

python

さて、Python 3に移って、x equal to range 5と書いてみましょう。 この範囲5の値は、変数Xに割り当てられます。変数Xの型を確認すると、範囲オブジェクトそのものが返されます。 つまり、Python3ではrangeはrangeオブジェクトそのものなのです。

Python 2

Input:

print range(0,10,1) 

Output:

Python 3

Input:

print(list(range(10))) 

Output:

自動化された移行

では、Python 2から3にコードを移すために、移行スクリプトをどのように自動化すればよいのでしょうか。

ここでは、「Add 2 Numbers in python」のような簡単なプログラムでテストしてみましょう。

Python 2

Input:

n1 = 1n2 = 2add = float(n1) + float(n2)print 'sum of {0} and {1} is {2}'.format(n1, n2, add) 

Output:

さて、2から3への移行を使用して、上記のコードを変換することができます。

Input:

n1 = 1n2 = 2add = float(n1) + float(n2)print('sum of {0} and {1} is {2}'.format(n1, n2, add)) 

Output:

このように、2 to 3を使ってコマンドラインでPython 3のコードに変換できることがわかります。 2to3.py は、Python 2 のコードを Python 3 に変換するためのスクリプト群を実行します。完全ではありませんが、全体的に素晴らしい仕事をします。 コードを変換した後は、問題があれば手動で修正する必要があります。 さあ、ナギニ。 その Python コードを検証する必要があります

パフォーマンス

今回のアップグレードでは、ほとんどのパフォーマンスの問題が修正されました!

Some major housekeeping changes

Python 2

  • print functional brackets optional.
  • Prefix string with u to make unicode string.
  • 整数の除算は常に整数を返します – 5/2=2。
  • Raw_input () は文字列を読み込みます。
  • input() は読み込んだデータを評価します。
  • generator .next().

Python 3

  • print 関数の括弧は必須です。
  • 整数の除算は float になることがある – 5/2=2.5.
  • Raw_input() が使えない
  • 入力は常に文字列を読む
  • Next (ジェネレータ)
  • Py2 から py3 へのユーティリティ
  • Dictionary .keys() と .values() はリストではなくビューを返す。
  • 自然比較以外では比較演算子を使用できなくなりました。
  • パーセント (%) 文字列フォーマット演算子は非推奨です。 Top 5 IDEs and code editors for Python

    Having problems?

    しばらくpython 2.xで作業していると、あちこちでエラーに遭遇するかもしれません。 それは大丈夫です。 問題をググってみてください。きっと誰かが移行時にその問題を抱えているはずです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です