簡體   English   中英

程序不斷運行-無限循環

[英]Program keeps running - infinite loop

我一直在創建組合計算器,這在我創建過程中很困難。 我一直試圖解決的問題是處理代碼中的無限循環。

oglist = ["a","b","c","d"]
combocounter = 3
lists = {}
comboloop = True
combolist = ["lol"]
pendinglist = ["lol"]
for x in range(0, combocounter):
    lists["list" + str(x)] = ["lol"]
def loop(counter1):
    global recursion1
    global recursion2
    if len(lists["list" + str(counter1)]) == 0:
        lists["list" + str(counter1 - 1)] = lists["list" + str(counter1 - 1)][1:]
        print(lists)
        recursion1 = True
        recursion2 = True
    else:
        lists["list" + str(counter1 + 1)] = lists["list" + str(counter1)][1:]
        print(lists)
        recursion2 = False
    return
def startingloop():
    global recursion1
    if len(lists["list0"]) == 0:
        comboloop = False
    else:
        lists["list1"] = lists["list0"][1:]
        print(lists)
        recursion1 = False
    return
def endingloop():
    global counter2
    global recursion2
    if len(lists["list2"]) == 0:
        lists["list1"] = lists["list1"][1:]
        print(lists)
        recursion2 = True
    else:
        combolist[counter2] = lists["list0"][0]
        for y in range(1, combocounter):
            combolist[counter2] = combolist[counter2] + lists["list" + str(y)][0]
        combolist.append("lol")
        lists["list2"] = lists["list2"][1:]
        counter2 += 1
        print(lists)
        print(combolist)
    return
lists["list0"] = oglist
counter2 = 0
while comboloop == True:
    startingloop()
    while recursion1 == False:
        loop(1)
        while recursion2 == False:
            endingloop()
combolist.remove("lol")
print(combolist)

我放置了一堆打印功能: print(lists)print(combolist) 當我運行它時,列表和組合列表會不斷更新和打印。 然后它停止了預期的打印,但是我的程序繼續運行。 它也永遠不會到達

combolist.remove("lol")
print(combolist)

我努力按照代碼的邏輯查找任何問題,但沒有找到。 我的代碼中不斷循環的是什么?

comboloop = False正在創建一個局部變量,該局部變量遮蓋了全局變量comboloop。 如果添加

global comboloop

在startingloop()函數中,程序退出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM