6

私はPythonでこのコード行を持っています

print 'hello world'

に対して

print ('hello world')

誰かが私に2つの違いを教えてもらえますか?

シンプルなコードで使用しました

var = 3
if var > 2: 
    print 'hello'

var のすべての値を厳密にチェックすることに失敗します。しかし、コードを次のように定義すると

var = 3
if var > 2: 
    print ('hello')

できます!

4

3 に答える 3

15

Python 2 の場合、違いはありません。そこにprintは、ステートメントがあり、'hello'および('hello')がその引数です。後者は just に単純化されるため'hello'、同一です。

Python 3 では、print ステートメントが削除され、print 関数が使用されるようになりました。関数は中かっこを使用して呼び出されるため、実際には必要です。その場合、print 'hello'は構文エラーですが、 whileはを最初の引数としてprint('hello')関数を呼び出します。'hello'

明示的にインポートすることで、print 関数を Python 2 にバックポートできます。これを行うには、モジュールの最初のインポートとして次を追加します。

from __future__ import print_function

次に、Python 2 で Python 3 から同じ動作が得られますが、ここでも括弧が必要です。

于 2012-11-16T11:04:12.170 に答える
9

Python3.0の新機能を読む必要があります:

printステートメントは、古いprintステートメント( PEP 3105print() )の特別な構文のほとんどを置き換えるキーワード引数を持つ関数に置き換えられました。

下位互換性

このPEPで提案された変更により、今日の印刷ステートメントのほとんどが無効になります。偶然にすべての引数の周りに括弧が付いているものだけがバージョン3.0で有効なPython構文であり続け、そのうちの1つの括弧で囲まれた値を出力するものだけが同じことを続けます。たとえば、2.xでは次のようになります。

>>> print ("Hello", "world")  # without import
('Hello', 'world')

>>> from __future__ import print_function  

>>> print ("Hello", "world")       # after import 
Hello world
于 2012-11-16T11:01:23.353 に答える