当我尝试在Python中使用print语句时,它会给我这样的错误:

>>> print "Hello, World!"
  File "<stdin>", line 1
    print "Hello, World!"
                        ^
SyntaxError: Missing parentheses in call to 'print'

这是什么意思?


当前回答

基本上,从Python 3开始。X你需要用圆括号打印。

Python 2。x:打印“指环王”

Python 3。x: print(“指环王”)


解释

打印是2中的一个陈述。X,但它是3。X中的函数。这有很多很好的理由。

用Python 3的函数格式。X,当用逗号分隔打印多个项目时,会有更大的灵活性。 你不能在语句中使用参数飞溅。在3。如果你有一个想要用分隔符打印的项列表,你可以这样做:

>>> items = ['foo', 'bar', 'baz']
>>> print(*items, sep='+')
foo+bar+baz

你不能重写语句。如果你想改变打印的行为,你可以在它是一个函数时这样做,但不能在它是一个语句时这样做。

其他回答

我还可以补充说,我知道关于Python2.7和Python3之间语法变化的一切,并且我的代码被正确地写成print("string")和even 打印(f“字符串”)……

但经过一段时间的调试后,我意识到我的bash脚本调用python如下:

python file_name.py

它的效果是在默认情况下使用python2.7调用我的python脚本,而python2.7给出了错误。所以我把bash脚本改为:

python3 file_name.py

哪个粗程序使用python3运行修复错误的脚本。

基本上,从Python 3开始。X你需要用圆括号打印。

Python 2。x:打印“指环王”

Python 3。x: print(“指环王”)


解释

打印是2中的一个陈述。X,但它是3。X中的函数。这有很多很好的理由。

用Python 3的函数格式。X,当用逗号分隔打印多个项目时,会有更大的灵活性。 你不能在语句中使用参数飞溅。在3。如果你有一个想要用分隔符打印的项列表,你可以这样做:

>>> items = ['foo', 'bar', 'baz']
>>> print(*items, sep='+')
foo+bar+baz

你不能重写语句。如果你想改变打印的行为,你可以在它是一个函数时这样做,但不能在它是一个语句时这样做。

除了这里的直接答案之外,还应该注意python 2和python 3之间的另一个关键区别。官方的python wiki介绍了几乎所有的主要区别,并重点介绍了何时应该使用这两个版本中的任何一个。这篇博客文章也很好地解释了当前的python世界,以及移动到python 3的某种程度上尚未解决的难题。

据我所知,你已经开始学习python语言了。在继续使用python 3之前,您应该考虑前面提到的文章。你不仅需要改变一些语法,你还需要考虑哪些包是可用的(python 2的优点),以及在你的代码中可以进行的潜在优化(python 3的优点)。

在Python 3中,你只能打印为:

print("STRING")

但是在python2中,括号是不必要的。

不幸的是,旧的xkcd漫画已经不完全是最新的了。

从Python 3.0开始,你必须写:

print("Hello, World!")

还得有人写反重力库:(