[英]how to include "else" statement in "for" loop with "if" statement?
我知道如何在 for 循環中創建 if 語句,但我不知道如何在那里添加“else”。
例如:
check_state = 1
for v in (v for v in range(0,10 +1, 1) if check_state == 1):
print v
Output:它將打印從 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
希望這個 output:打印 0
我不知道如何用正確的語法來表達。 有人可以幫忙嗎?
謝謝!
我認為您想使用 if 表達式在兩個范圍調用之間進行選擇:
for v in (range(0,10 +1, 1) if check_state == 1 else range(1)):
check_state = 1
#can be given 0 or 1, if 1 then it will print '0-10' and if 0 then it will print only '0'
for v in range(0,11):
if check_state == 1:
print(v,end="")
elif check_state == 0:
print(v)
break
您使用發電機有什么特別的原因嗎?
您可以像這樣在列表理解中執行此操作:
[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]
這兩個都將 output 一個整數列表,而不是像在原始代碼中那樣打印出來。
有 2 種可能的方法可以用簡寫符號來做到這一點:
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.