CS50P:“等待程序退出时超时”

问题描述 投票:0回答:2

我正在尝试解决哈佛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()
python cs50
2个回答
1
投票
import sys
then use

sys.exit("Just Right!")

而不是

print("Just Right!")
break

0
投票

使用

random.randint()

而不是

random.randrange()

© www.soinside.com 2019 - 2024. All rights reserved.