【问题标题】:How do I restart the program based on user input? [duplicate]如何根据用户输入重新启动程序? [复制]
【发布时间】:2020-09-24 22:59:50
【问题描述】:

我是 python 新手,所以如果这需要一些疯狂的经验,请尝试将其简化:P

所以我在制作一个不公平的剪刀石头布游戏,并想根据用户输入重新启动游戏

输出 >> 想再玩一次?是/否
输入 >> Y

(然后它重新启动)

如果我说 N,终端就会关闭。 我该如何实现呢?

如果可以,请尝试在其中包含我的代码,因为我可能会搞砸

代码如下:

choice = input("Rock, Paper, or Scissors? ")

if choice == "Rock" or choice == "rock":
    print("I choose Paper! \nI win!")

if choice == "Paper":
    print("I choose Scissors! \nI win!")

if choice == "Scissors":
    print("I choose Rock! \nI win!")

if choice == "rock":
    print("I choose Paper! \nI win!")

if choice == "paper":
    print("I choose Scissors! \nI win!")

if choice == "scissors":
    print("I choose Rock! \nI win!")

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    只需让它成为一个 while 循环并检查答案是肯定的还是否定的。

    while input("Continue?: ") == "y":
        ... rest of code
    

    这样,只要输入为“y”(是),它就会继续循环。将您的其他输入放在“其余代码”括号中,以便它再次询问用户输入。

    为了让您的编码体验更轻松,我建议您阅读while loopsinput。只要满足条件,while 循环就会继续执行。在上述条件下,只要用户输入的是“y”。您应该在 while 循环内运行另一个“输入”,这样它就不会启动无限循环(无论哪种方式,它都会以您的“n”或任何其他输入结束,只要它不是"y")。

    完整代码:

    while input("Would you like to play? (Y/n): ") == "Y":
        choice = input("Rock, Paper, or Scissors? ")
    
        if choice == "Rock" or choice == "rock":
            print("I choose Paper! \nI win!")
    
        if choice == "Paper":
            print("I choose Scissors! \nI win!")
    
        if choice == "Scissors":
            print("I choose Rock! \nI win!")
    
        if choice == "rock":
            print("I choose Paper! \nI win!")
    
        if choice == "paper":
            print("I choose Scissors! \nI win!")
    
        if choice == "scissors":
            print("I choose Rock! \nI win!")
    

    与其他解决方案相比,这也会在第一次尝试时询问。

    【讨论】:

      【解决方案2】:

      尝试使用循环而不是重新启动程序。 while 循环应该可以解决问题。

      例如:

      user_wants_to_continue = True
      while(user_wants_to_continue):
          choice = input("Rock, Paper, or Scissors? ")
          if choice.lower() == 'rock':
              print("I choose scissors!\nI win!")
          if choice.lower() == 'scissors':
              print("I choose paper!\nI win!")
          if choice.lower() == 'paper':
              print("I choose rock!\nI win!")
          user_continue = input("Would you like to play again? [y/n]? ")
          user_wants_to_continue = (user_continue.lower()[0] == 'y')
      

      【讨论】:

        【解决方案3】:

        您实际上要求了一个do-while 循环,其中循环的内容将始终至少运行一次,然后再检查是否继续或现在的条件。如何实现do-while循环,全面覆盖here

        使用链接答案中的一个示例,您的代码可能如下所示:

        while True:
        
            choice = input("Rock, Paper, or Scissors? ")
            
            if choice == "Rock" or choice == "rock":
                print("I choose Paper! \nI win!")
            
            if choice == "Paper":
                print("I choose Scissors! \nI win!")
            
            if choice == "Scissors":
                print("I choose Rock! \nI win!")
            
            if choice == "rock":
                print("I choose Paper! \nI win!")
            
            if choice == "paper":
                print("I choose Scissors! \nI win!")
            
            if choice == "scissors":
                print("I choose Rock! \nI win!")
            
            if input("Continue (Y/N)? ") == 'N':
                break
        

        【讨论】:

          猜你喜欢
          • 2013-02-01
          • 1970-01-01
          • 2016-05-29
          • 2015-12-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-11-24
          相关资源
          最近更新 更多