2012-04-26 2 views
0

У меня проблема в цикле ниже для python.Как остановить весь цикл?

Он не останавливается, как только totalout = 4, но только после того, как весь цикл для scorein закончен. (То есть thrid петля)

Например, если totalout = 4 в scorein номер 2, он запускает цикл, пока не достигнет 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 перед временем цикл? –

+0

'totalscore',' numberofscore' не объявляются, и ваша первая строка должна использовать назначение, а не двоеточие (плюс 'list' не является хорошим выбором для имени переменной). – Levon

+0

извините У меня есть изменения уже – user1355061

ответ

1

вы хотите break вырваться из 3 петель ли? Я думаю, вы, судя по названию вопроса

В этом случае, так как это конец функции, вы можете просто заменить break с return

+0

Спасибо alot Да, я хочу вырваться из всех 3loops Это работает! Спасибо большое :) – user1355061

0

Попробуйте изменить оператор and к or. Это похоже на то, что вы хотите.

while totalscore<numberofscore or totalout<10:

+0

Спасибо за подсказку, но он тоже не работает – user1355061

Смежные вопросы