2012-04-26 26 views
0

我在python下面的循環中遇到問題。如何停止整個循環?

只要totalin = 4,它不會停止,但只有當scorein的整個循環結束時纔會停止。 (即THRID環)

例如,如果在scorein編號2的totalout = 4,它運行循環,直到它達到10

#global value 
totalturn=0 
totalscorein=0 
totalout=0 

def main 

    numberofturn=int(input("Number of score:")) 

    no_turn=['1','2','3','4','5','6','7','8','9','10'] 
    #while loop condition  
    while totalturn<numberofturn and totalout<10: 

      #increasement 
      totalscore+=1 

      #for loop for score 
      for t in range(1,numberofturn+1): 
       turns=s*1 

       print("\n\n\nThe turn"+no_turn[t]+":",turns) 

       #for loop for number to appear from list 
       for c in range (10): 

        #list for random number to appear 
        numscore = ['1','2','3','4','5','6','7','8','9','o'] 

        #random choice from numscore list to appear 
        from random import choice 
        scorein=choice(numscore) 

        print ("\n\nScores :",scorein) 




        if scorein.isdigit(): 
         totalscorein=totalscorein+int(scorein)    


        if scorein.isalpha(): 
         totalout+=1 



        if totalturn==numberofturn: 
         print("\nTotal turn played:",totalturn) 


        elif totalout==4: 

         print("\nTotal turns played",totalturn) 
         break 

        else: 

         print("") 
+0

前一陣有什麼totalscore,numberofscore和totalout的值替換break循環? – 2012-04-26 09:52:23

+0

'totalscore','numberofscore'沒有聲明,你的第一行應該使用賦值而不是冒號(加上'list'對變量名不是一個好的選擇)。 – Levon 2012-04-26 09:54:00

+0

對不起 我已經做了修改 – user1355061 2012-04-26 10:02:49

回答

1

你想的break打出來的3個循環的?我猜你是從問題

在這種情況下的標題來判斷,因爲它是函數的結尾,你可以只用return

+0

非常感謝 是的,我想打破所有3loops 它的工作! 非常感謝:) – user1355061 2012-04-26 10:45:24

0

嘗試改變and操作者or。這似乎是你想要的。

while totalscore<numberofscore or totalout<10:

+0

感謝您的提示,但它不工作以及 – user1355061 2012-04-26 10:13:41