我正在尝试解决哈佛CS50P课程中的“猜谜游戏”问题(问题集4)。分配是提示用户输入数字 x ,生成 1-x 范围内的随机数 y,然后让用户猜测 y,当猜测正确时退出程序。任何非数字的输入都应重新提示用户。它在控制台中工作得很好,但是当我使用 check50 检查代码时,出现“等待程序退出时超时”错误。我认为问题是由 main() 函数中的 while 循环引起的,并尝试以多种方式重新表述它,但我仍然无法修复它。 我复制了下面的代码,感谢任何帮助或提示!
检查50个输出:
:) game.py 存在
:) game.py 拒绝非数字级别
:) game.py 拒绝超出范围的级别
:) game.py 接受有效级别
:) game.py 拒绝非数字猜测
:) game.py 拒绝超出范围的猜测
:) game.py 输出“太大!”当猜测太大时
:( 当猜测正确时,game.py 会输出“Just right!”
等待程序退出时超时
:) game.py 输出“太小!”当猜测太小时
from random import choice
def main():
number = choice((list(range(1, get_level() + 1)))) # get random number y from range 1-x
while True: # have user guess y
try:
guess = int(input("Guess: "))
if guess > 0:
if guess < number:
print("Too small!")
elif guess > number:
print("Too large!")
elif guess == number:
print("Just right!")
break # break out of loop if guess is correct
except ValueError:
pass
def get_level():
while True:
try:
level = int(input("Level: "))
if level > 0:
return level
except ValueError:
pass
main()
import sys
then use
sys.exit("Just Right!")
而不是
print("Just Right!")
break
使用
random.randint()
而不是
random.randrange()