如何在python中循环if语句?

时间:2017-02-16 16:11:07

标签: python loops if-statement

我想用这些代码制作一个循环。要有X个行数。

if line[3]>=15:
    line[3]=0
    print("line 3 is >= 15")
    if line[2]>=15:
        line[2]=0
        print("line 2 is >= 15")
        if line[1]>=15:
            line[1]=0
            print("line 1 is >= 15")
            if line[0]>=15:
                print("FFFFF")
            else:
                line[0]+=1
        else:
            line[1]+=1
    else:
        line[2]+=1
else:
    line[3]+=1

我希望有一个循环可以使这段代码适用于X个代码。

我想要完成的是如果line [4]> = 15然后line [4]将为0然后将1添加到第[3]行。

但是我想把它放在一个循环中...如果我想要超过4行,那么我将只编辑我想要的行数,而不再添加额外的if语句。

2 个答案:

答案 0 :(得分:0)

我不得不承认我不确定这是不是你想要做的,但这是我根据你的代码/评论理解的。

for i in range(len(line)-1, -1, -1): 
    if line[i] >= 15:
        line[i] = 0
        if i != 0:
            print("line {} is >=15".format(i))
        else:
            print("FFFFF")
    else:
        line[i-1] +=1

答案 1 :(得分:0)

我可能错了,但是你的代码让我想到了一个递归序列。如果它是一个递归序列,你应该在python中查看递归函数:http://www.python-course.eu/recursive_functions.php

根据我的理解line=[1,36,13,17],我们应该line=[2, 0, 14, 0]

这是我做的递归函数:

def test(line,n):
    if n==0: # 2) and for the last it will run here
        if line[0]>=15:
            print("FFFFF")
        else:
            line[0]+=1
        print line
        return "the end"
    else: # 1) for all calculations the program will run here
        if line[n]>=15:
            line[n]=0
            print("line " + str(n) + " is >= 15")
            return test(line,n-1)
        else:
            line[n]+=1
            return test(line,n-1)

line=[1,36,13,17]

print test(line,3)

结果如下:

line 3 is >= 15
line 1 is >= 15
[2, 0, 14, 0]
the end

但是我认为你不需要做任何递归序列来做这样的事情。你应该遵循布莱塔的所作所为。