Python 如何修复猜谜游戏
目标是创建一个简单的程序,生成一个介于1和100之间的数字,然后它会要求用户猜测这个数字,如果他们猜测超出了数字范围,它应该告诉他们再次猜测,如果没有,它应该告诉他们猜测是太高还是太低,提示他们再次猜测。一旦他们猜到了正确的数字,它应该告诉他们他们赢了,以及他们正确猜到的尝试次数 这是我到目前为止所拥有的Python 如何修复猜谜游戏,python,input,Python,Input,目标是创建一个简单的程序,生成一个介于1和100之间的数字,然后它会要求用户猜测这个数字,如果他们猜测超出了数字范围,它应该告诉他们再次猜测,如果没有,它应该告诉他们猜测是太高还是太低,提示他们再次猜测。一旦他们猜到了正确的数字,它应该告诉他们他们赢了,以及他们正确猜到的尝试次数 这是我到目前为止所拥有的 import random def play_game(): number = random.randint(1, 100) print("Guess a number
import random
def play_game():
number = random.randint(1, 100)
print("Guess a number between 1 and 100 inclusive.")
count = 1
while True:
guess = int(input("Your guess: "))
if guess > 0 and guess <= 100:
#the age is valid
return play_game
else:
print("Invalid number.")
return play_game()
if guess < number:
print("Too low.")
elif guess > number:
print("Too high.")
elif guess == number:
print("You won! You guessed it in " + str(count) + " tries.\n")
return
count+=1
play_game()
随机导入
def play_game():
number=random.randint(1100)
打印(“猜测一个介于1和100之间的数字。”)
计数=1
尽管如此:
guess=int(输入(“您的猜测:”)
如果猜测>0且猜测数字:
打印(“太高”)
elif guess==数字:
打印(“您赢了!您在“+str(count)+”尝试中猜到了。\n”)
返回
计数+=1
玩游戏
我目前遇到的问题是,当它检查他们的猜测是否在1-100之间,而不是继续看天气,他们的数字是否太多或太低,它会保持并循环
如果有人能帮我解决这个问题,并对代码进行总体审查,我将不胜感激。我认为问题在于流程中存在一些缩进和逻辑问题。 当您从游戏内部调用play_game()时,它将启动一个完全不同的游戏 用不同的随机数 满足您的条件的好代码可能如下所示
import random
def play_game():
number = random.randint(1, 100)
print("Guess a number between 1 and 100 inclusive.")
count = 1
while True:
guess = int(input("Your guess: "))
if guess > 0 and guess <= 100:
if guess < number:
print("Too low.")
elif guess > number:
print("Too high.")
elif guess == number:
print("You won! You guessed it in " + str(count) + " tries.\n")
return
count+=1
else:
print("Invalid number.")
play_game()
随机导入
def play_game():
number=random.randint(1100)
打印(“猜测一个介于1和100之间的数字。”)
计数=1
尽管如此:
guess=int(输入(“您的猜测:”)
如果猜测>0且猜测数字:
打印(“太高”)
elif guess==数字:
打印(“您赢了!您在“+str(count)+”尝试中猜到了。\n”)
返回
计数+=1
其他:
打印(“无效数字”)
玩游戏
您可以重新调整代码:1.如果没有。在范围内,运行高、低匹配检查
2.如果猜测与否匹配,则中断
import random
def play_game():
number = random.randint(1, 100)
print("Guess a number between 1 and 100 inclusive.")
count = 0
while True:
count += 1
guess = int(input("Your guess: "))
if guess > 0 and guess <= 100:
#the age is valid
if guess < number:
print("Too low.")
elif guess > number:
print("Too high.")
elif guess == number:
print("You won! You guessed it in " + str(count) + " tries.\n")
break
else:
print("Invalid number, try again")
play_game()
随机导入
def play_game():
number=random.randint(1100)
打印(“猜测一个介于1和100之间的数字。”)
计数=0
尽管如此:
计数+=1
guess=int(输入(“您的猜测:”)
如果猜测>0且猜测数字:
打印(“太高”)
elif guess==数字:
打印(“您赢了!您在“+str(count)+”尝试中猜到了。\n”)
打破
其他:
打印(“无效号码,请重试”)
玩游戏
您遇到的问题是因为缩进不正确。检查数字是否在有效范围内的if-else语句与while循环处于相同的缩进级别,因此不会在其中执行。简单的缩进应该可以解决这个问题。
此外,您调用了不带括号的play_game,这使得函数调用的语法不正确。但是,与其检查数字是否大于0且小于100,不如检查数字是否小于0或大于100,如果是这种情况,则打印无效数字并调用play_game()。
它看起来像这样:
while True:
if guess < 0 and guess > 100:
print ("Invalid number.")
return play_game()
为True时:
如果guess<0且guess>100:
打印(“无效数字”)
返回play_game()
代码的其余部分看起来不错。我还附加了Python文档缩进部分的链接当nos在
[01100]
中时,您希望程序做什么?老实说,我不知道,这只是我们在课堂上编写的代码,应该在家里完成,我几乎不懂python中的任何东西,现在让你的条件独占不包含,抛开else语句和它下面的两行,把缩进严重的块移到左边,应该这样做。