为什么 cs50 的检查器不起作用?-professor.py

Why the cs50's checker doesn't work? -professor.py

提问人:3mq 提问时间:11/11/2023 更新时间:11/11/2023 访问量:56

问:

我目前正在学习 CS50 课程:“CS50 的 Python 编程简介”。在问题集 4 中,有一个练习,我必须创建一个特定的数学小游戏。

当我尝试运行 CS50 检查器时,它给了我一些错误。有人可以帮忙吗?

这是代码:(我知道sys不是必需的)

import random
import sys

# generate 10 math problems
def main():
    n = get_level()
    for _ in range(10):
        x, y = generate_integer(n)
        for i in range(3):
            try:
                answ = int(input(f"{x} + {y} = "))
            except ValueError:
                continue
            else:
                if answ == x + y:
                    break
                else:
                    print("EEE")
                    if i == 2:
                        print(f"{x} + {y} = {x+y}")
                    continue
    sys.exit()
            
# ask user for a number between 1 and 3: n
def get_level():
    while True:
        try:
            n = int(input("Level: "))
            if 0 < n < 4:
                return n
            else:
                raise ValueError
        except ValueError:
            continue
            
# generate values
# digits of x and y are == n
def generate_integer(level):
    min_value = 10**(level-1)
    max_value = 10**level - 1
    x = random.randint(min_value, max_value)
    y = random.randint(min_value, max_value)
    return x, y
        
if __name__ == "__main__":
    main()

这些是错误:

:) professor.py exists
:) Little Professor rejects level of 0
:) Little Professor rejects level of 4
:) Little Professor rejects level of "one"
:) Little Professor accepts valid level
:( At Level 1, Little Professor generates addition problems using 0–9
    Did not find "6 + 6 =" in "Level: 7 + 7 =..."
:) At Level 2, Little Professor generates addition problems using 10–99
:) At Level 3, Little Professor generates addition problems using 100–999
:| Little Professor generates 10 problems before exiting
    can't check until a frown turns upside down
:| Little Professor displays number of problems correct
    can't check until a frown turns upside down
:| Little Professor displays EEE when answer is incorrect
    can't check until a frown turns upside down
:| Little Professor shows solution after 3 incorrect attempts
    can't check until a frown turns upside down

这是练习:

“大卫小时候的第一个玩具,很有趣,是小教授,一个”计算器“,可以生成十个不同的数学问题供大卫解决。例如,如果玩具要展示,大卫会(希望)回答。如果玩具要展示,大卫会(希望)回答。如果大卫回答错误,玩具将显示。在同一个问题有三个错误答案后,玩具只会显示正确答案(例如,或)。4 + 0 = 44 + 1 = 5EEE4 + 0 = 44 + 1 = 5

在名为 的文件中,实现一个程序:professor.py

  • 提示用户输入级别 n。如果用户未输入 、 或 ,程序应再次提示。123

  • 随机生成十 (10) 个数学问题,格式为 ,其中每个 和 都是具有 n 位数字的非负整数。无需支持除加法 () 以外的操作。X + Y = XY+

  • 提示用户解决其中每个问题。如果答案不正确(甚至不是数字),程序应再次输出并提示用户,允许用户总共尝试最多三次该问题。如果用户在三次尝试后仍未正确回答,程序应输出正确答案。EEE

  • 该程序最终应输出用户的分数:正确答案的数量(满分 10 个)。

按如下方式构建程序,其中提示(如果需要,则重新提示)用户输入级别并返回 、 或 ,并返回随机生成的带数字的非负整数,或者引发 if 不是 、 或 :get_level123generate_integerlevelValueErrorlevel123

import random


def main():
    ...


def get_level():
    ...


def generate_integer(level):
    ...


if __name__ == "__main__":
    main()
蟒蛇 CS50

评论

0赞 0x00 11/11/2023
要求呢?另外,不确定如何读取您收到的错误,这是字面上的输出吗?The program should ultimately output the user’s score: the number of correct answers out of 10.
0赞 slothrop 11/11/2023
“如果答案不正确(甚至不是数字),程序应输出 EEE 并再次提示用户”如果用户输入的答案不是数字,则程序不会输出“EEE”。
2赞 slothrop 11/11/2023
另外,请注意,失败的测试被描述为“在第 1 级,Little Professor 使用 0-9 生成加法问题”。何时,您可以返回的最大值和最小值是多少?level==1generate_integer()
0赞 3mq 11/11/2023
错误是 CS50 检查器的结果。我添加了我错过的内容(输出“EEE”和最后的分数),但它仍然没有被接受。
1赞 3mq 11/11/2023
只是修复了它,这实际上是问题所在。多谢。

答: 暂无答案