gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 20:45:03 25 4
gpt4 key购买 nike

我正在尝试使用 if-else 表达式,如果 if 应该中断循环条件失败,但得到 invalid syntax错误。
示例代码:

a = 5
while True:
print(a) if a > 0 else break
a-=1
当然,如果我以传统方式(不使用单衬)书写,它会起作用。
使用 break 有什么问题 else 之后的命令关键词?

最佳答案

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

...     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 并不期待。您 不能return 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/66130037/

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