1

私はPythonを初めて使用し、変数を宣言してその値を出力しようとしています。

これは私のコードです:

#!C:\Python32\python.exe
import sys
import os
import cgi
import cgitb
cgitb.enable()
a = 5
print(a)-------------------------> My doubt is in this line

しかし、私の友人の1人がその行を。と書いていprint aます。彼のPythonでは、その値を出力していますが、私の場合は「無効な構文」と表示されています。なぜこうなった?

4

2 に答える 2

5

Python 2では、printこれは関数ではなく、キーワードです。したがって、括弧は重要ではなく、とprint 'foo'一緒に機能しprint('foo')ます。

Python 3はprint関数になり、パラメーターを使用して呼び出す必要がありますprint('foo')。としてそれを呼び出すことはもう機能しprint 'foo'ません。

printキーワードとして使用するとエラーが発生するため、Python3を使用printしています。関数として使用する必要があります。あなたの友人はPython2を使用しています。これは両方の方法で機能します。

Python3とPython2は似ていますが、異なるバージョンのPythonを使用している人とのコラボレーションを計画している場合は、いくつかの大きな違いについて読む必要があります:http: //docs.python.org/py3k/whatsnew /3.0.html

于 2012-09-19T04:08:29.747 に答える
4

Python 3を使用しているので、printは関数なので、次のように呼び出しますprint(a)。Python 2(友達が使用しているもの)では、括弧を省略して、次のように呼び出すことができますprint a。ただし、これは将来機能しないため、正しい方法です

また、バージョン(print(a))はPython3とPython2の両方で機能します。これは、余分な括弧が一致する限り無視されるためです。両方で機能するため、常にPython3スタイルで作成することをお勧めします。(やや魔法の)__future__モジュールを使用して、これを明示的かつ必須にすることができます:

from __future__ import print_function

printPython 3では、を指すように変数を設定するprintか、関数の引数として渡すことができるため、関数として持つと他のいくつかの違いが生じます。

a = print
a('magic') # prints 'magic'

def add_and_call(func, num):
    num += 1
    func(num)

add_and_call(print, 1) # prints 2
于 2012-09-19T04:07:57.377 に答える