我一直试图在一行中制作偶数奇数的基本if-else代码,其输出必须仅包含一种类型的数字(偶数或奇数),我尝试了以下代码:
for i in range(10):
print(i) if i%2!=0 else pass
但是输出显示出这样的语法错误:
File "<stdin>", line 2
print(i) if i%2!=0 else pass
^
SyntaxError: invalid syntax
搜索并尝试后,我知道“通过”或“继续”无法以这种方式工作。我想知道这背后的原因。
答案 0 :(得分:0)
像这样使用内联if
和else
仅适用于表达式。您不能放置任意语句。 Python设计师故意不希望这种事情发生,滥用语言语法来创建密集的,难以阅读的代码。
The Zen of Python
美丽胜于丑陋。
显式优于隐式。
简单胜于复杂。
复杂胜于复杂。
扁平比嵌套好。
稀疏胜于密集。
可读性计数。
特殊情况不足以打破规则。
尽管实用胜过纯洁。
错误绝不能默默传递。
除非明确静音。
面对含糊不清的事物,拒绝猜测的诱惑。
应该有一种(最好只有一种)明显的方式。
尽管除非您是荷兰人,否则一开始这种方式可能并不明显。
现在总比没有好。
尽管现在从来没有比现在的 right 好。
如果实现难以解释,那是个坏主意。
如果实现方式易于解释,则可能是个好主意。
命名空间是一个很棒的主意-让我们做更多的事吧!
使用多行:
if i % 2 != 0:
print(i)
else:
pass
当然,不需要else
。如果删除它,我仍然建议您将if
块保留在两行中。没有理由对其进行压缩。
if i % 2 != 0:
print(i)