2012-04-26 74 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