gpt4 book ai didi

python - 为什么 "if-else-break"在 python 中中断?

转载 作者:太空狗 更新时间:2023-10-30 00:21:16 25 4
gpt4 key购买 nike

我正在尝试使用 if-else 表达式,如果 if 条件失败,它应该会中断循环,但会收到 invalid syntax 错误。

示例代码:

a = 5
while True:
print(a) if a > 0 else break
a-=1

当然,如果我以传统方式书写(不使用单行),它会起作用。

else 关键字后使用 break 命令有什么问题?

最佳答案

如果我运行它,我会收到以下错误:

...     print(a) if a > 0 else break
File "<stdin>", line 2
print(a) if a > 0 else break
^
SyntaxError: invalid syntax

这是因为

print(a) if a > 5 else break

是一个三元运算符。三元运算符不是if 语句。这些使用语法:

<expr1> if <expr2> else <expr3>

等价于一个“虚函数”:

def f():
if <expr2>:
return <expr1>
else:
return <expr3>

所以这意味着 else 旁边的部分应该是一个表达式break 不是表达式,它是一个语句。所以 Python 不期望那样。您不能返回break

, print 也不是函数。所以这会导致 print 语句出错。在 print 是一个关键字。

您可以将代码重写为:

a = 5
while True:
if a > 5:
print(a)
else:
break
a -= 1

您可以在 documentation 中阅读更多相关信息和 PEP-308 .

关于python - 为什么 "if-else-break"在 python 中中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44848883/

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