Python 如何在此游戏中成功创建循环?

Python 如何在此游戏中成功创建循环?,python,Python,我对Python还相当陌生,所以我不知道该怎么做。我创建了这个随机数字猜测游戏,我把它记下来了,只是游戏应该永远不会结束。一旦用户猜到数字,游戏应该重新开始。这是我的密码 import random num = random.randint(1, 100) def main(): guess_num = 0 guess = int(input("Enter an integer from 1 to 100: ")) while num != gues

我对Python还相当陌生,所以我不知道该怎么做。我创建了这个随机数字猜测游戏,我把它记下来了,只是游戏应该永远不会结束。一旦用户猜到数字,游戏应该重新开始。这是我的密码

import random
num = random.randint(1, 100)

def main():
    guess_num = 0
    guess = int(input("Enter an integer from 1 to 100: "))
    while num != guess:
        if guess < num:
            print("Too low, try again.")
            guess = int(input("Enter an integer from 1 to 100: "))
            guess_num+=1
        elif guess > num:
            print("Too high, try again.")
            guess = int(input("Enter an integer from 1 to 100: "))
            guess_num+=1
        else:
            print("Congratulations, that's correct!")
            guess_num = guess_num+1
            print("You guessed "+str(guess_num)+" times!")
            break
            main()
main()
随机导入
num=random.randint(1100)
def main():
猜测数量=0
guess=int(输入(“输入1到100之间的整数:”)
而num!=猜测:
如果猜测num:
打印(“太高,请重试。”)
guess=int(输入(“输入1到100之间的整数:”)
猜测_num+=1
其他:
打印(“祝贺你,这是正确的!”)
猜数=猜数+1
打印(“你猜对了”+str(猜对次数)+“次数!”)
打破
main()
main()

这会使主方法一直运行到停止为止。

您在
else
中放入了
break
语句。如果你移除它,它就会工作。但是您还必须将
num
语句放在
main

这应该可以做到:

def main():
    num = random.randint(1, 100)
    guess_num = 0
    guess = int(input("Enter an integer from 1 to 100: "))
    while num != "guess":
        if guess < num:
            print("Too low, try again.")
            guess = int(input("Enter an integer from 1 to 100: "))
            guess_num+=1
        elif guess > num:
            print("Too high, try again.")
            guess = int(input("Enter an integer from 1 to 100: "))
            guess_num+=1
        else:
            print("Congratulations, that's correct!")
            guess_num = guess_num+1
            print("You guessed "+str(guess_num)+" times!")
            main()

main()
def main():
num=random.randint(1100)
猜测数量=0
guess=int(输入(“输入1到100之间的整数:”)
而num!=“猜测”:
如果猜测num:
打印(“太高,请重试。”)
guess=int(输入(“输入1到100之间的整数:”)
猜测_num+=1
其他:
打印(“祝贺你,这是正确的!”)
猜数=猜数+1
打印(“你猜对了”+str(猜对次数)+“次数!”)
main()
main()
  • def main():
    开始的所有行必须缩进四个空格。也许这只是复制粘贴的一个问题,但我发现自己在查看缩进不当的Python代码时非常不舒服
  • 删除
    while num!=“猜测”:
    不确定它的作用
  • 删除
    guess
    周围的引号,因为现在您正在根据字符串检查数字
  • 现在,为了实现您的功能,您应该将
    num=random.randint(1100)
    行移动到函数中以选择一个新的数字。然后,在为true时调用函数:

    为True时:
    main()
    
    else块内部对
    main()
    的调用永远不会执行,因为您先打破了
    的状态。刚刚修复了缩进,抱歉,是复制粘贴,这意味着当用户赢得游戏时,您将在while循环中调用while循环,然后在while循环中调用while循环,这会降低性能。是的,我不会这样做。我的目标只是指出用户在代码中存在的问题,以便他能够理解自己做错了什么。对于这种情况,我只是保持简单。我已经修复了代码,使其循环,但随机数不会改变,我需要再次导入随机数吗?在这种情况下,num将始终相同。虽然如此,通过在main()中定义num可以轻松修复。请注意,这实际上是一个无限循环,除了使用
    exit()之外,没有任何控件
    inside
    main
    如果为true,如何调用该函数?我设定的是什么?我修正了我的代码,但现在它不会打印祝贺信息或猜测信息。
    def main():
        num = random.randint(1, 100)
        guess_num = 0
        guess = int(input("Enter an integer from 1 to 100: "))
        while num != "guess":
            if guess < num:
                print("Too low, try again.")
                guess = int(input("Enter an integer from 1 to 100: "))
                guess_num+=1
            elif guess > num:
                print("Too high, try again.")
                guess = int(input("Enter an integer from 1 to 100: "))
                guess_num+=1
            else:
                print("Congratulations, that's correct!")
                guess_num = guess_num+1
                print("You guessed "+str(guess_num)+" times!")
                main()
    
    main()