繁体   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