允许用户重新启动或退出的Python程序

允许用户重新启动或退出的Python程序,python,Python,我希望这个程序允许用户重新启动游戏时,他们通过或退出它,如果他们不想再次玩游戏,但我不知道怎么做。你能帮我写下让程序这么做的代码吗? 如果我输入了下面的代码,请更正。 下面是我用python编写的游戏代码: import random secret_number = random.randrange(1, 101) guess = 0 tries = 0 while guess != secret_number: guess = int(input("Guess a number:

我希望这个程序允许用户重新启动游戏时,他们通过或退出它,如果他们不想再次玩游戏,但我不知道怎么做。你能帮我写下让程序这么做的代码吗? 如果我输入了下面的代码,请更正。 下面是我用python编写的游戏代码:

import random

secret_number = random.randrange(1, 101)

guess = 0
tries = 0

while guess != secret_number:
    guess = int(input("Guess a number: "))
    tries = tries + 1

    if guess < secret_number:
        print("Too low!")

    elif guess > secret_number:
        print("Too high!")

    else:
        print("You got it!")
        print("Number of tries: ", tries)

    userInput = input("Enter 'R' to restart or 'X' to exit").capitalize()

    if userInput == "R":
        #code to restart the game goes here

    elif gameReply == "X":
        #code to exit the game goes here
随机导入
secret_number=random.randrange(1101)
猜测=0
尝试=0
猜猜看!=机密号码:
guess=int(输入(“猜一个数字:”)
尝试=尝试+1
如果猜测秘密号码:
打印(“太高!”)
其他:
打印(“明白了!”)
打印(“尝试次数:”,尝试次数)
userInput=input(“输入'R'重新启动,或输入'X'退出”)。大写()
如果userInput==“R”:
#重新启动游戏的代码在这里
elif gameReply==“X”:
#退出游戏的代码在这里
  • 你的压痕错了
  • 在测试程序时,可以尝试使用较小的
    random.randrange()
  • 游戏结束后,如果用户输入,比如说,
    hello
    ,您想做什么?在下面的程序中,如果不是
    x
    x
    则基本上继续,然后再次播放
  • 以下是固定版本:

    import random
    import sys
    
    while True: # outer game loop
    
        print('Welcome to the game.')
    
        secret_number = random.randrange(1, 5)
    
        guess = 0
        tries = 0
    
        while guess != secret_number:
            guess = int(input("Guess a number: "))
            tries = tries + 1
    
            if guess < secret_number:
                print("Too low!")
    
            elif guess > secret_number:
                print("Too high!")
    
            else:
                print("You got it!")
                print("Number of tries: ", tries)
    
        userInput = input("Enter 'R' to restart or 'X' to exit").capitalize()
    
        if userInput == "X":
            print('Goodbye.')
            sys.exit(-1) # exits the program
    
    随机导入
    导入系统
    虽然正确:#外部游戏循环
    打印(“欢迎参加游戏”。)
    secret_number=random.randrange(1,5)
    猜测=0
    尝试=0
    猜猜看!=机密号码:
    guess=int(输入(“猜一个数字:”)
    尝试=尝试+1
    如果猜测秘密号码:
    打印(“太高!”)
    其他:
    打印(“明白了!”)
    打印(“尝试次数:”,尝试次数)
    userInput=input(“输入'R'重新启动,或输入'X'退出”)。大写()
    如果userInput==“X”:
    打印('再见')
    系统退出(-1)#退出程序
    
    您可以使用sys.exit()停止脚本并将代码包装到一个方法中,以便在用户想要重新启动时再次调用它。另外,使用原始输入而不是输入,因为输入需要Python代码

    例如:

    import random
    import sys
    
    def my_game():
        secret_number = random.randrange(1, 101)
    
        guess = 0
        tries = 0
    
        while guess != secret_number:
            guess = int(input("Guess a number: "))
            tries = tries + 1
    
            if guess < secret_number:
                print("Too low!")
    
            elif guess > secret_number:
                print("Too high!")
    
            else:
                print("You got it!")
                print("Number of tries: ", tries)
    
            userInput = raw_input("Enter 'R' to restart or 'X' to exit").capitalize()
    
            if userInput == "R":
                my_game()
    
            elif userInput == "X":
                sys.exit()
    
    my_game()
    
    随机导入
    导入系统
    定义我的游戏()
    secret_number=random.randrange(1101)
    猜测=0
    尝试=0
    猜猜看!=机密号码:
    guess=int(输入(“猜一个数字:”)
    尝试=尝试+1
    如果猜测秘密号码:
    打印(“太高!”)
    其他:
    打印(“明白了!”)
    打印(“尝试次数:”,尝试次数)
    userInput=raw_input(“输入'R'重新启动,或输入'X'退出”)。大写()
    如果userInput==“R”:
    我的游戏()
    elif userInput==“X”:
    sys.exit()
    我的游戏()
    
    重新启动游戏:您可以声明一个初始化游戏的函数,然后在需要重新启动时调用它

    退出:

    sys.exit()


    我已经编写了一个类似的游戏:你可以看一看。这是我的第一个python代码

    用于重新启动,您可以将尝试设置为零,然后
    继续
    ,因为您处于循环中

    if userInput == "R":
        tries = 0
        continue
    
    对于退出,
    sys.exit()
    是赢家

    elif gameReply == "X":
        sys.exit()
    

    这里的缩进是错误的,因为打印显示的是“尝试次数”,这在这个版本中没有意义。@Sait请纠正我-缩进哪里是错误的?每次用户输入“R”时,尝试次数都会重置,并在每次循环中递增。我很欣赏你的代码,我也尝试了一下,它确实工作得很好,但有几件事我不明白:1。您导入的是一个名为“sys”的模块;那个模块是用来做什么的?2.您正在使用的外部循环看起来很酷,但我不明白那里发生了什么,为什么声明说“While True:”。3.在程序结束时,您使用代码“sys.exit(-1)”,现在,我知道代码应该退出程序,但为什么它有一个参数(-1)。如果你能让我明白我不懂的东西,我会很高兴的。提前谢谢。@NathanSiafa,不客气。1.是用于系统特定参数和功能的模块。2.外循环就是所谓的游戏循环,请看。3.实际上,我意识到现在使用(不带-1)会是一个更好的主意。你给sys.exit()的参数基本上是为了调试的目的,比如.get逻辑,但是玩家只能猜测一次