我正在尝试使用 if-else 表达式,它应该在 if
条件失败时中断循环,但出现 invalid syntax
错误。
示例代码:
a = 5
while True:
print(a) if a > 0 else break
a-=1
当然,如果我以传统方式书写(不使用单行),它就可以工作。
在 else
关键字后使用 break
命令有什么问题?
原文由 Manish Goel 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在尝试使用 if-else 表达式,它应该在 if
条件失败时中断循环,但出现 invalid syntax
错误。
示例代码:
a = 5
while True:
print(a) if a > 0 else break
a-=1
当然,如果我以传统方式书写(不使用单行),它就可以工作。
在 else
关键字后使用 break
命令有什么问题?
原文由 Manish Goel 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答899 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
如果我运行它,我会收到以下错误:
这是因为
是一个 三元运算符。三元运算符 没有
if
语句。这些使用语法:它 相当于 一个“虚函数”:
所以这意味着
else
旁边的部分应该是一个 表达式。break
不是一个表达式,它是一个语句。所以 Python 不期望那样。你 不能return
break
。在 python-2.x 中,
print
也不是函数。因此print
语句会出错。在 python-2.xprint
是一个关键字。您可以将代码重写为:
您可以在 文档 和 PEP-308 中阅读更多相关信息。