>> print "Hello, World!" File "", line 1 print "Hello, W-6ren">
gpt4 book ai didi

python - "SyntaxError: Missing parentheses in call to ' print'"在Python中是什么意思?

转载 作者:IT老高 更新时间:2023-10-28 12:05:14 25 4
gpt4 key购买 nike

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

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

这是什么意思?

最佳答案

此错误消息表示您正在尝试使用 Python 3 来遵循示例或运行使用 Python 2 的程序 print声明:

print "Hello, World!"

上述语句在 Python 3 中不起作用。在 Python 3 中,您需要在要打印的值周围添加括号:

print("Hello, World!")

“SyntaxError: Missing parentheses in call to 'print'” 是 Python 3.4.2 中添加的新错误消息,主要是为了帮助在运行时尝试遵循 Python 2 教程的用户Python 3。

在 Python 3 中,打印值从一个不同的语句变为一个普通的函数调用,所以现在需要括号:

>>> print("Hello, World!")
Hello, World!

在 Python 3 的早期版本中,解释器只报告一个通用语法错误,而没有提供任何有用的提示来说明可能出现的问题:

>>> print "Hello, World!"
File "<stdin>", line 1
print "Hello, World!"
^
SyntaxError: invalid syntax

至于为什么 print在 Python 3 中变成了一个普通函数,它与语句的基本形式无关,而是与您如何执行更复杂的事情有关,例如使用尾随空格而不是结束行将多个项目打印到 stderr。

在 Python 2 中:

>>> import sys
>>> print >> sys.stderr, 1, 2, 3,; print >> sys.stderr, 4, 5, 6
1 2 3 4 5 6

在 Python 3 中:

>>> import sys
>>> print(1, 2, 3, file=sys.stderr, end=" "); print(4, 5, 6, file=sys.stderr)
1 2 3 4 5 6

从 2017 年 9 月的 Python 3.6.3 版本开始,一些与 Python 2.x 打印语法相关的错误消息已更新,以推荐其对应的 Python 3.x:

>>> print "Hello!"
File "<stdin>", line 1
print "Hello!"
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Hello!")?

由于“打印调用中缺少括号”的情况是编译时语法错误,因此可以访问原始源代码,因此它能够在建议的替换中包含该行其余部分的全文。但是,它目前并未尝试计算出适当的引号来放置该表达式(这并非不可能,只是足够复杂以至于尚未完成)。

TypeError为右移运算符提出的也已定制:

>>> print >> sys.stderr
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for >>: 'builtin_function_or_method' and '_io.TextIOWrapper'. Did you mean "print(<message>, file=<output_stream>)"?

由于此错误是在代码运行而不是编译时引发的,因此它无法访问原始源代码,因此在建议中使用元变量( <message><output_stream> )替换表达式,而不是用户实际键入的任何内容。与语法错误情况不同,在自定义右移错误消息中,可以直接在 Python 表达式周围放置引号。

关于python - "SyntaxError: Missing parentheses in call to ' print'"在Python中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25445439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com