如何在带有“if”语句的“for”循环中包含“else”语句?

时间:2021-05-20 16:11:38

标签: python

我知道如何在 for 循环中创建 if 语句,但我不知道如何在那里添加“else”。

例如:

check_state = 1
for v in (v for v in range(0,10 +1, 1) if check_state == 1):
   print v

输出:它将打印从 0 到 10

我想在那里添加“else”语句,如下所示:

check_state = 0
for v in (v for v in range(0,10 +1, 1) if check_state == 1, else v for v in range(1)):
   print v

希望得到这个输出:打印 0

我不知道如何用正确的语法来表达。有人可以帮忙吗?

谢谢!

3 个答案:

答案 0 :(得分:6)

我认为您想使用 if 表达式在两个范围调用之间进行选择:

for v in (range(0,10 +1, 1) if check_state == 1 else range(1)):

答案 1 :(得分:1)

您使用发电机有什么特别的原因吗?

你可以在列表理解中这样做:

[v for v in (range(0,11) if check_state == 1 else range(1))]

从传统的条件 for 循环角度考虑这一点以了解此处发生的情况也可能有益。

x = []
check_state = 1

for v in range(0,11):
    if check_state == 1:
        x.append(v)
    elif check_state == 0:
        x = [0]

这两个都将输出一个整数列表,而不是像原始代码那样打印出来。

答案 2 :(得分:1)

有两种可能的方法可以用速记符号来做到这一点:

check_state = 0
for v in range(11) if check_state == 1 else range(1):
      print(v)

否则:

check_state = 0
for v in check_state == 1 and range(11) or range(1):
      print(v)
相关问题