如何从主代码返回while循环

时间:2016-10-20 03:06:42

标签: python python-3.x

我正在寻找一种在完成后返回while循环的方法。

基本上,在我的主代码中,在开头,有一个while循环,我想做x次,然后退出并执行一些其他代码。如果满足某些值,则返回主要顶部的while循环。

这是我写的代码,但是一旦while循环完成,它就会停止。

t = 0

def main():

    global t

    try:

        while t < 3:

            distance = Tank_Measurement()
            if distance > 5 and distance < 100:                         
                print ('Distance:',distance ,'cm')
                Pumping_to_Growbed()
                time.sleep(2)
                draining_Selenoid()
                t =  t + 1    
            else:
                print ('Distance:',distance ,'cm is out of range')      
                time.sleep(1)                                         
                Tank_Measurement()
                t =  t + 1
        return

        distance = Tank_Measurement()
        distance2 = growbed_Measurement()

        if distance < 5 and distance2 < 5:
            print ('Water level in main tank low')
            print ('Filling up main tank')
            time.sleep(1)
            Pumping_to_mainTank()
            t = 0
        else:
            t = 0

    except KeyboardInterrupt:                                           

        print ('Exiting program gracefully')                            
        for i in range(3,0,-1):
            time.sleep(1)
            sys.stdout.write(str(i)+' ')
            sys.stdout.flush()
    finally:
        GPIO.cleanup()                                                  
main()      

2 个答案:

答案 0 :(得分:0)

main()的整个主体放在另一个另一个中,同时循环:

def main():
    keep_looping  = True
    while keep_looping:
        ... original code here
        if some_condition:
            keep_looping = False

答案 1 :(得分:0)

  

一旦while循环结束,它就会停止

那是因为你有一个return作为下一个语句。所以它返回到你调用main()的位置,然后是你代码的最后一行,之后没有其他语句或代码。