问题要求用户输入1到3之间的级别。基于这个输入,随机选择1位、2位或3位整数,分别生成加法问题。我的代码似乎做得很好,但没有通过检查。显示的代码错误是:
:( At Level 1, Little Professor generates addition problems using 0–9
Did not find "6 + 6 =" Choose Level "C: 8 + 7 = "
:( At Level 2, Little Professor generates addition problems using 10–99
Did not find "59 + 63 =" in "Choose Level: 85 + 78 = ..."
:( At Level 3, Little Professor generates addition problems using 100–999
Did not find "964 + 494 =" in "Choose Level: 859 + 782 ..."
下面是我的代码:
import random
def main():
level = get_level()
score = 0
for i in range(10):
x, y = generate_integer(level)
answer = x + y
for j in range(3):
print(x, "+", y, "= ", end="")
guess = int(input())
if guess == answer:
score = score + 1
break
elif guess != answer and j == 2:
print(x, "+", y, "=", answer)
break
else:
print("EEE")
print("Score:", score)
def get_level():
while True:
try:
n = int(input("Choose Level: "))
if 1 <= n <= 3:
return n
except ValueError:
pass
def generate_integer(level):
if level == 3:
return random.choices(range(100, 1000), k=2)
elif level == 2:
return random.choices(range(10, 100), k=2)
elif level == 1:
return random.choices(range(0, 10), k=2)
else:
raise ValueError
if __name__ == "__main__":
main()
我尝试了使用Python 3.10的代码,它运行没有问题。但是,您的代码在Python 2中确实存在问题,即:
print
的可选参数end
不可用。choices
不属于random
。- 打印操作的格式现在包括不需要的
(
等。
一旦我删除了end
并用一些随机的二元组替换了对choices
的调用,代码运行得很好。
您提供的输出(我假设是任何测试代码调用您自己的代码所给出的输出)没有提供任何有用的细节。我的猜测是,该测试使用了Python 2,由于上面提到的问题而失败。如果您不能直接访问测试代码,请调整您自己的代码以在Python 2中运行。如果您确实有访问权限,请使用python3
显式运行它。