python是否有条件代码解释?

时间:2020-05-05 22:30:14

标签: python for-loop conditional-statements interpretation

我想知道python是否具有类似条件代码解释的功能。像这样:

x = True
if x:
    for i in range(0, 10):
else:
    for i in range(0, 100):
# ------------------------------
        print(i) # this is the code inside either one these for loop heads

我知道我可以做到:

x = True
if x:
    for i in range(0, 10):
        print(i)
else:
    for i in range(0, 100):
        print(i)

但是就我而言,我有很多for循环代码,但这并不是一个很好的解决方案。

4 个答案:

答案 0 :(得分:3)

您可以随时这样做:

x = True

for i in range(0,10) if x else range(0, 100):
    print(i)

答案 1 :(得分:1)

否,它没有该语法。不过,您可以通过其他方式实现相同的目标。

例如,从公共部分(10循环)中提取变化部分(100for in range(...)):

limit = 10 if x else 100

for i in range(limit):
    print(i)

或将两个不同范围之一保存在变量中并对其进行循环:

numbers = range(0, 10) if x else range(0, 100)

for i in numbers:
    print(i)

或将循环提取到在每次迭代中执行任意操作的函数:

def loop(limit, action):
    for i in range(limit):
        action(i)

loop(10 if x else 100, lambda i: print(i))

答案 2 :(得分:0)

如果您愿意,可以这样做。

x = True
for i in range(0, (10 if x else 20)):
    print(i)

这里的if else语句像这样result_if_true if condition else result_if_false

答案 3 :(得分:0)

if x:
    my_iter = range(0, 10)
else:
    my_iter = range(0, 100)
for i in my_iter:
     print(i)