我如何摆脱这个嵌套循环

How do i get out of this nested loop

我一直在努力摆脱我编写的这个嵌套循环....如果代码有点太长请原谅我,但实际重要的部分已经在代码的最后一个区域进行了注释请帮忙。 随机导入 导入时间 导入数学

# main

while True:
    print('Only a maximum of three players are allowed in this game. A single player plays 
with cpu')
    print('1. Single Player\n2. Double Players\n3. Triple players')
    print("Let's Start")
    player_select = input('How many players will be playing ths game?: ')
    single_score = []  # keep scores of player
    cpu_score = []  # keep scores of CPU

    while True:
        lst = ['Rock', 'Paper', 'Scissors']  # holding the random three words
        if player_select == '1' or player_select.lower() == 'single player':
            randomize = random.choice(lst)  # create a random choice out of the list
            for i in last:
                print(i)  # display rock paper scissors
                time.sleep(1)
            print(randomize)
            guess = input('guess rock, paper or scissors: ')  # demanding for a guess

            if guess.lower() == randomize.lower():  # what should happen if guess is right
                single_score.append(1)  # add 1 to the single_score list

                print(f"Scores Player1 {single_score} \nScores Player CPU {cpu_score}")

            elif guess.lower() != randomize.lower():
                cpu_score.append(1)

                print(f"Scores Player1 {single_score} \nScores Player CPU {cpu_score}")
            print("Press 'Enter to continue'\n1. Change number of players(p)\n2. Exit(e) ")
            question = input('Enter your choice: ')
            if question == '':
                continue
            elif question.lower() in ['change number of players', 'p'] or question == '2':
                print('Lets start all over')
            #how do i get out of this to the intitial while loop?
            elif question.lower() in ['exit', 'e'] or question == '3':
                print('Total score of Player1', sum(single_score), '\n Total score of Player CPU', 
sum(cpu_score))

执行此操作的最佳方法是在 while 循环中使用布尔值检查:

check1 = True
check2 = True
while check1:
   ...
   while check2:
       if some_stop_condition_for_the_iner_loop:
           check2 = False
       if some_stop_condition_for_the_outer_loop:
           check1 = False
           check2 = False

通过这种方式,您可以轻松控制执行流程。 您还可以使用关键字 break 来停止您所在的当前循环,但如果有需要的循环,它只会打破更深的循环,因此布尔检查通常是最好的解决方案。