【问题标题】:doing "nothing" in else command of if-else clause [duplicate]在 if-else 子句的 else 命令中做“无”[重复]
【发布时间】:2018-10-05 18:31:47
【问题描述】:

代码:

for i in range(1000):
    print(i) if i%10==0 else pass

错误:

File "<ipython-input-117-6f18883a9539>", line 2
    print(i) if i%10==0 else pass
                            ^
SyntaxError: invalid syntax

为什么'pass'在这里不起作用?

【问题讨论】:

标签: python python-3.x


【解决方案1】:

这不是一个好方法,如果你看到这个问题,你的代码结构可能不符合你的要求,但这会对你有所帮助:

 print(i) if i%10==0 else None

【讨论】:

  • 这肯定更有意义,但为什么 'pass' 在这种情况下不起作用?
  • 这是一个表达式,而不是缩进块。 @VarenGupta
  • 哦,我明白了。这就说得通了。谢谢!
  • 是的,BcK 是对的。你使用 pass 来呈现一个空的缩进块,传递它不是什么都不做。 @VarenGupta
【解决方案2】:

这不是您问题的直接答案,但我想建议一种不同的方法。

首先选择要打印的元素,然后打印它们。因此,您不需要空分支。

your_list = [i for i in range(100) if i%10]
# or filter(lambda e: e%10 == 0, range(100))
for number in your_list:
    print number

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 2020-01-28
    • 1970-01-01
    • 2019-04-09
    • 1970-01-01
    相关资源
    最近更新 更多