我在使用 check50 测试我的代码时遇到了麻烦,因为我在使用 check50 之前手动测试了我的代码并且它运行良好。我可以知道如何解决“等待程序退出时超时”错误吗?这是我的代码:
import random
def main():
score = 0
for _ in range(10):
level = get_level()
X = generate_integer(level)
Y = generate_integer(level)
for i in range(3):
try:
ans = int(input(f'{X} + {Y} = '))
if ans == X + Y:
score += 1
break
else:
raise ValueError
except ValueError:
print('EEE')
if i == 2:
print(f'{X} + {Y} =',(X+Y))
print(f'Score: {score}')
def get_level():
while True:
try:
level = int(input('Level: '))
if level in [1,2,3]:
return level
except ValueError:
pass
def generate_integer(level):
match level:
case 1:
return random.randint(0,9)
case 2:
return random.randint(10,99)
case _:
return random.randint(100,999)
if __name__ == "__main__":
main()
我已将您的代码简化为:
import random
def main():
score = 0
valid_levels = {'1','2','3'}
for _ in range(10):
level = input('Level: ')
# If level is invalid, consider it as level 3
level = int(level) if level in valid_levels else 3
low = 10**(level-1)
high = 10**(level)
x = random.randrange(low, high)
y = random.randrange(low, high)
for i in range(3):
if int(input(f'{x} + {y} = ')) == x + y:
score += 1
break
else:
print('EEE')
if i == 2:
print(f'{x} + {y} =',(x+y))
print(f'Score: {score}')
def generate_integer(level):
return random.randrange(10**(level-1),10**(level))
if __name__ == "__main__":
main()
从手动测试来看,它似乎表现良好,但给出您的实际说明会很有帮助