我知道如何在 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
我不知道如何用正确的语法来表达。有人可以帮忙吗?
谢谢!
答案 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)