2016-10-20 10 views
-2

私はwhileループが終了した後にそれを返す方法を探しています。メインコードからwhileループに戻るにはどうすればいいですか?

基本的には、私のメインコードでは、最初はx回実行してから終了して他のコードを実行するwhileループがあります。特定の値が満たされている場合は、メインの上部にある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()  
+1

'while'ループは、それ自身の関数に抽出され、必要に応じて呼び出される必要があります。 – tdelaney

答えて

0

ループしながら、別のmain()の体全体を置く:whileループが終了すると

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

それはちょうどあなたが持っているためである

を停止whileの後の次のステートメントとしてreturn。だから、main()という名前のポイントに戻ります。それはコードの最後の行です。それ以降のステートメントやコードはありません。

関連する問題