python提示syntaxerror什么意思_“SyntaxError:print”调用中缺少括号在Python中是什么意思?...

此错误消息表示您正试图使用Python3遵循示例或运行使用Python2print语句的程序:

print "Hello, World!"

上面的语句在Python 3中不起作用。在Python 3中,需要在要打印的值周围添加括号:print("Hello, World!")

“SyntaxError:print'调用中缺少括号是Python 3.4.2中添加的一条新错误消息,主要用于帮助在运行python3时尝试遵循Python 2教程的用户。

在Python3中,打印值从一个不同的语句变为一个普通的函数调用,因此现在需要括号:>>> print("Hello, World!")

Hello, World!

在Python 3的早期版本中,解释器只报告一个通用语法错误,而不提供任何可能出错的有用提示:>>> print "Hello, World!"

File "", 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月发布的Python3.6.3开始,一些与Python2.x打印语法相关的错误消息已经更新,以推荐其Python3.x对应版本:>>> print "Hello!"

File "", line 1

print "Hello!"

^

SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Hello!")?

由于“call to print中缺少括号”的情况是一个编译时语法错误,因此可以访问原始源代码,因此可以在建议的替换中在行的其余部分包含全文。然而,它目前并没有试图找出合适的引号来放置在该表达式周围(这并非不可能,只是足够复杂,还没有完成)。

右移位运算符的TypeError也已自定义:>>> print >> sys.stderr

Traceback (most recent call last):

File "", line 1, in

TypeError: unsupported operand type(s) for >>: 'builtin_function_or_method' and '_io.TextIOWrapper'. Did you mean "print(, file=)"?

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值