gpt4 book ai didi

python - 捕捉语法错误

转载 作者:行者123 更新时间:2023-12-03 08:13:35 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Failed to catch syntax error python [duplicate]

(2 个回答)


3年前关闭。




我正在编写一个脚本,其中包括在没有换行符的情况下打印 10 秒倒计时,并且我希望它与 Python2 和 Python3 兼容。

这是我尝试过的:

for sec in range(10, 0, -1):
try:
print(" %d \r" % sec, end="")
except SyntaxError:
subprocess.call("printf \" %d \\r\"" % sec, shell=True)

time.sleep(1)

我收到了这个错误:
    print(" %d \r" % sec, end="")
^
SyntaxError: invalid syntax

在我看来 SyntaxError应该被抓到。

我已尝试研究该主题,并阅读了 documentation on SyntaxError ,但找不到任何暗示为什么会发生这种情况的东西。

最佳答案

正如文档所说:

This may occur in an import statement, in an exec statement, in a call to the built-in function eval() or input(), or when reading the initial script or standard input (also interactively).



在读取程序时,在执行任何代码之前解析整个文件的语法。如果语法无效,Python 甚至无法开始运行代码。因此,您无法捕获模块内部发生的 SyntaxError。

对于这种特殊情况,有一个替代方案,即 from __future__ import print_function .

关于python - 捕捉语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25562107/

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