python有条件代码解释吗?

Does python have conditional code 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 循环代码,这不是一个很好的解决方案。

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

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

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))

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

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.

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

你总是可以这样做:

x = True

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