Python 如何包括;否则";“中的声明”;至于;循环使用“;如果;陈述

Python 如何包括;否则";“中的声明”;至于;循环使用“;如果;陈述,python,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

我知道如何在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

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


谢谢大家!

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

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

您使用发电机有什么特殊原因吗

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

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
[v代表v in(范围(0,11),如果check_state==1,否则范围(1))]
<> P>从传统的条件循环角度考虑这一点也有助于理解这里发生的事情。

x=[]
检查状态=1
对于范围(0,11)内的v:
如果check_state==1:
x、 附加(五)
elif check_state==0:
x=[0]

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

有两种可能的方法可以用速记法实现这一点:

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)