Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中循环if语句?_Python_Loops_If Statement - Fatal编程技术网

如何在python中循环if语句?

如何在python中循环if语句?,python,loops,if-statement,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")

我想用这些代码做一个循环。有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个代码

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


但我希望它在一个循环中。因此,如果我想有超过4行,那么我将只编辑我想要的行数,不再添加额外的if语句。

我必须承认,我不确定这是否是您试图做的,但这是我根据您的代码/注释理解的

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

我可能错了,但您的代码让我想到了递归序列。如果是递归序列,您应该研究python中的递归函数:

根据我的理解,如果
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

然而,我认为你不需要做任何递归序列来做这样的事情。你应该遵循bouletta的做法。

我认为你获得否决票的原因是你在描述中没有提供足够的细节!如果你能对你要找的东西添加更多的细节和解释,这将大大简化沟通。你需要充分解释你想做什么。这是非常模糊的。嗨,伙计们,谢谢你们的评论,我已经编辑过了,我希望它不再模糊。试着用伪代码写它,也许它会更清晰?听起来您想测试>=15,如果是这样,将下一个元素设置为0,并将1添加到包含任意数量元素的列表的当前元素中?谢谢!虽然这不是我想要的,那是因为我的问题不太清楚。但我从中学到了一些东西。非常感谢。这是最接近我需要的。基于此,我已经找到了我需要的代码。非常感谢你!