CS50小教授‘等待程序退出时超时’

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

我在使用 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()

附上check50结果: Check50 result 我希望有人可以解释出了什么问题。感谢您的帮助:)。

python cs50
1个回答
0
投票

我已将您的代码简化为:

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()

从手动测试来看,它似乎表现良好,但给出您的实际说明会很有帮助

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