簡體   English   中英

如何在帶有“if”語句的“for”循環中包含“else”語句?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM