我的 CS50 Python 课程猜谜游戏代码有问题

I am having problem with my code for CS50 Python course guessing game

提问人:Danq 提问时间:11/6/2023 更新时间:11/6/2023 访问量:36

问:

我正在尝试编写一个程序来满足 CS50 Python 猜谜游戏的要求:

  • 提示用户输入级别 。如果用户未输入正整数,程序应再次提示。

  • 使用模块随机生成一个介于 1 和 (含)之间的整数。random

  • 提示用户猜测该整数。如果猜测不是正整数,程序应再次提示用户。

    • 如果猜测小于该整数,程序应输出并再次提示用户。Too small!

    • 如果猜测大于该整数,程序应输出并再次提示用户。Too large!

    • 如果猜测与该整数相同,则程序应输出并退出。Just right!

问题是我通过了所有检查,但无论我如何尝试修复我的代码,我都无法通过其中一项检查

这是我的代码

import random

def main():
    n_level = prompt_input('Level: ')
    game_generate(n_level)

def prompt_input(prompt):
    while True:
        try:
            i = int(input(prompt))
            if i > 0:
                return i
        except ValueError:
            pass

def game_generate(n):
    result = random.randint(1,n)
    while True:
        try:
            guess = int(input('Guess: '))
            if guess > result and guess <= n:
                print('Too large!')
            elif guess < result and guess >= 1:
                print('Too small!')
            elif guess == result:
                print('Just right!')
                break
        except ValueError:
            continue

main()
蟒蛇 CS50

评论

0赞 DinoCoderSaurus 11/7/2023
我知道一个解决方法,但我不知道为什么!它与(在下一节中介绍)有关。将 in the loop 更改为 ,它就会通过。pytestbreakwhileexit()
0赞 Danq 11/8/2023
好的,exit() 似乎解决了这个问题。谢谢@DinorCoderSaurus。我相信 Check50 正在寻找一个特定的程序退出信号,该信号仅提供 exit() 而 break 则不提供。
0赞 DinoCoderSaurus 11/8/2023
也可以通过在调用之前添加 to 来修复它(并保持原样)。同样,它与 有关,但 IDK 为什么。if __name__ == '__main__':main()breakpytest

答: 暂无答案