如何询问用户是否要再次播放并重复while循环?

时间:2016-09-22 06:14:05

标签: python loops while-loop nested

在Python上运行,这是我的代码示例:

import random 

comp = random.choice([1,2,3])

while True:
     user = input("Please enter 1, 2, or 3: ")
     if user == comp
             print("Tie game!")
     elif (user == "1") and (comp == "2")
             print("You lose!")
             break
     else:
             print("Your choice is not valid.")

所以这部分有效。但是,如何退出此循环,因为在输入正确的输入后,它会一直询问“请输入1,2,3”。

我还想询问玩家是否想再玩一次:

伪码:

     play_again = input("If you'd like to play again, please type 'yes'")
     if play_again == "yes"
         start loop again
     else:
         exit program

这是否与嵌套循环有关?

1 个答案:

答案 0 :(得分:5)

您的代码要点:

  1. 您粘贴的代码在':'if,elif
  2. 之后没有else.
  3. 无论您想要什么,都可以使用continue and break之类的控制流语句来实现。 Please check here for more detail
  4. 你需要从“你失去”中删除休息,因为你想问用户他是否想玩。
  5. 您编写的代码永远不会出现“Tie Game”,因为您要将字符串与整数进行比较。保存在变量中的用户输入将是字符串,随机输出的comp将是整数。您已将用户输入转换为整数int(user)
  6. 检查用户输入是否有效可以使用in运算符进行检查。
  7. <强>代码:

    import random
    
    while True:
         comp = random.choice([1,2,3])
         user = raw_input("Please enter 1, 2, or 3: ")
         if int(user) in [1,2,3]:
             if int(user) == comp:
                print("Tie game!")
             else:
                print("You lose!")
         else:
                print("Your choice is not valid.")
    
         play_again = raw_input("If you'd like to play again, please type 'yes'")
         if play_again == "yes":
            continue
         else:
             break