Python if-else的一行实现

时间:2018-10-24 12:58:44

标签: python if-statement

我一直试图在一行中制作偶数奇数的基本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

搜索并尝试后,我知道“通过”或“继续”无法以这种方式工作。我想知道这背后的原因。

1 个答案:

答案 0 :(得分:0)

像这样使用内联ifelse仅适用于表达式。您不能放置任意语句。 Python设计师故意不希望这种事情发生,滥用语言语法来创建密集的,难以阅读的代码。

  

The Zen of Python

     

美丽胜于丑陋。
  显式优于隐式。
  简单胜于复杂。
  复杂胜于复杂。
  扁平比嵌套好。
  稀疏胜于密集。
  可读性计数。
  特殊情况不足以打破规则。
  尽管实用胜过纯洁。
  错误绝不能默默传递。
  除非明确静音。
  面对含糊不清的事物,拒绝猜测的诱惑。
  应该有一种(最好只有一种)明显的方式。
  尽管除非您是荷兰人,否则一开始这种方式可能并不明显。
  现在总比没有好。
  尽管现在从来没有比现在的 right 好。
  如果实现难以解释,那是个坏主意。
  如果实现方式易于解释,则可能是个好主意。
  命名空间是一个很棒的主意-让我们做更多的事吧!

使用多行:

if i % 2 != 0:
    print(i)
else:
    pass

当然,不需要else。如果删除它,我仍然建议您将if块保留在两行中。没有理由对其进行压缩。

if i % 2 != 0:
    print(i)