python - 如何解决猜谜游戏
问题描述
目标是创建一个简单的程序,生成一个介于 1 和 100 之间的数字,然后它会要求用户猜测这个,如果他们猜测的数字范围之外,它应该告诉他们再次猜测,如果不是,它应该告诉他们是否他们的猜测太高或太低,促使他们再次猜测。一旦他们猜到了正确的数字,它应该告诉他们他们赢了,以及他们猜对了多少次。
这是我到目前为止所拥有的
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()
我目前遇到的问题是,当它检查他们的猜测是否在 1-100 之间,而不是继续看天气,或者他们的数字是否太低或太低时,它会停留并循环。
如果有人可以帮助我解决这个问题并总体上查看代码,我将不胜感激。
解决方案
我认为问题在于流程中的一些缩进和一些逻辑问题。当您从游戏内部调用 play_game() 时,它会以不同的 random_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:
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()
推荐阅读
- java - java中是否存在数学子集关系?
- javascript - Fabric.js 画布选择位置不正确
- kubernetes - Datadog:如何在 Kubernetes 中运行 Pod 时发出警报
- c++ - 如何在此代码中创建 find_if 函数?
- linux - whereami -r 如何显示结果中的特定值?
- java - Spring Boot 2.x - 自动将 HTTP 重定向到 HTTPS
- java - 如何解决错误:“我在封闭范围中定义的局部变量必须是最终的或有效的最终”?
- python - 在python的单个文件中存储相当少量图像的有效方法?
- html - 如何将文本重新对齐页面底部的边框?
- r - 如何为新日期列设置开始日期,并将其链接到时间以更改为下一天