“如果”嵌套在“for”内只进入一次

时间:2015-10-29 20:13:56

标签: python

for for中有一个IF问题。

print (frames_min)
print (frames_max)

for f in range(frames_min, frames_max):
    if ((f >= 96) and (f < 144)):
        f += 3
    print("A",f)

结果:

Output

为什么不是100,103,106,109 ??

2 个答案:

答案 0 :(得分:2)

在Python中for遍历每个变量,而不是索引:

print (frames_min)
print (frames_max)

for f in range(frames_min, frames_max):
    if ((f >= 96) and (f < 144)):
        f += 3
    print("A",f)

在这里,您将f的值增加3,但f表示存储在那里的实际数字而不是索引。如果不是这样,您可以使用while

print (frames_min)
print (frames_max)
i = frames_min
while i < frames_max:
    print(i)
    i += 3

或者,您可以使用范围命令的'step' parameter使其为每个第3个数字提供:

print (frames_min)
print (frames_max)

for f in range(frames_min, frames_max, 3):
    print("A",f)

我认为你想要的结果是什么。

答案 1 :(得分:0)

您需要使用while循环,而不是for循环。

 frames_min=97
 frames_max=144

 print (frames_min)
 print (frames_max)

 f=97
 while f >=frames_min and f<= frames_max:
    f = f + 3
 print("A",f)