簡體   English   中英

回到python中的一個破碎的循環

[英]Go back to a broken loop in python

在python中留下一個循環有2種不同的選項。 continue,它會讓你回到循環的開頭,而break就像一個燈開關,它會在腳本運行的剩余時間內切斷循環。 我的問題是我有一段時間的True循環,我希望能夠突破它,然后在代碼中稍后返回它。 這是可能的,如果是的話,我該怎么做? 到目前為止,我有這樣的事情:

while True
    if #condition:
        #do something
    else:
        #do something
        break
while True
    if #condition:
        #do something
    else:
        break
#code that returns it to the first loop

有沒有辦法做到這一點,如破裂或什么? 對不起,我是編程新手,這是我在計算機科學的第一年,我剛開始學習python。

你可以把第一個循環放在一個函數中。

def first_loop():
    while True:
    if something:
        # do something
    else:
        break

# call loop for first time
first_loop()

while True:
    if something:
        #do something
    else:
        break

# return back to the loop
first_loop()

你不能打破循環,然后返回它。

嗯......你可能會,但這需要使用臭名昭着的'goto'關鍵字...你應該不惜一切代價避免這種情況。

通常情況下,當你想要做某事時,停止這樣做,然后再做一遍,你把那個“東西”放到一個函數或過程中。 然后,每當你想要做某事時,你就可以調用或運行該函數。

def doSomething():
    while True
        if #condition:
            #do something
        else:
            #do something
            break

def doSomethingElse():
    while True
        if #condition:
            #do something
        else:
            break

def doOneMoreThing():
    while True
        if #condition:
            #do something
        else:
            break

然后你可以按照你想要的任何順序重復這些事情:

doSomething()
doSomethingElse()
doSomething()
doSomething()
doOneMoreThing()

你應該簡單地將循環包裝在函數中:

def loop1():

    while True
        if #condition:
            #do something
        else:
            #do something
            break

def loop2():

    while True
        if #condition:
            #do something
        else:
            break

loop1()
loop2()
loop1()

只需換行另一個循環:

while True  # outer loop
    while True  # first loop
        if #condition:
            #do something
        else:
            #do something
            break
    while True   # second loop
        if #condition:
            #do something
        else:
            break
   # break from outer loop 
   # when you are done returning to the first loop

我認為你應該反過來。 沒有必要打破無限循環。 只需制作一些功能並在它們之間切換

def function1():
   do something

def function2():
   do something else

while True:
    if something:
        function1()
    else:
        function2()

暫無
暫無

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

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