CS50P 问题集 4(小教授):等待程序退出时超时

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

我正在解决这个问题。当我尝试时,代码运行良好。我可以输入级别,检查我的答案,然后程序打印出所需的答案。但是 check50 在进行单元测试时返回此消息,

“等待程序退出时超时”

应该有一个我错过的愚蠢错误。这是我写的代码。

import random

def main():
    num_repeat = 10
    score = 0
    level = get_level()

    while num_repeat > 0:
        x = generate_integer(level)
        y = generate_integer(level)
        guess_remain = 3
        try:
            while guess_remain > 0:
                answer = int(input(f'{x} + {y} = '))
                if answer == x + y:
                    score += 1
                    break
                else:
                    print('EEE')
                    guess_remain -= 1
                    if guess_remain == 0:
                        print(f'{x} + {y} = {x+y}')
                    continue

        except ValueError:
            print('EEE')
            pass
        else:
            num_repeat -= 1

    print(f'Score: {score}')
    return 0


def get_level():
    while True:
        try:
            level = int(input("Level: "))
            if level in [1, 2, 3]:
                break
        except:
            pass
    return level


def generate_integer(digits):
    if digits == 1:
        min_num = 0
    else:
        min_num = 10 ** (digits - 1)
    max_num = (10 ** digits) -1
    rand_num = random.randint(min_num, max_num)
    return rand_num

main()

我对我的代码尝试了很多修改。仍然无法通过检查50。

python cs50
1个回答
0
投票

我再次检查了您的代码,没有发现任何明显的错误。 然而,有一件我之前没有提到的事情你可以尝试:

尝试使用

--debug
标志运行您的程序。* 这将告诉 check50 打印有关程序执行的更多详细信息。这可以帮助您识别“等待程序退出时超时”错误的来源。

要使用

--debug
标志运行程序,可以使用以下命令:

```
check50 --debug pset4/little/little
```

如果你的程序运行仍然遇到问题,你可以将你的代码发布到CS50论坛上并向其他学生或助教寻求帮助。

以下是解决问题的一些其他提示:

确保您的程序不会陷入无限循环。* 您可以使用调试器逐行单步调试代码,看看它在哪里陷入困境。

*确保您的程序没有在不应该等待的情况下等待用户输入。

*例如,如果您已经生成了随机数,则不应提示用户输入数字。

确保您的程序正确终止。* 例如,您的代码中间不应有任何

exit()
语句。

我希望这有帮助!

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