【发布时间】:2022-08-14 16:28:36
【问题描述】:
我正在参加 CS50 Introduction to Programming with Python。我对 PSet4(小教授)有疑问。我在运行时没有任何问题,但是当 check50 运行时它一直给出这个错误:\“小教授接受有效级别在等待程序退出时超时。\”当我手动运行程序时,它接受任何低于 4 的级别值。但 check50 另有说明。这是我的代码:
import random
def main():
try:
level = input(\"Level: \")
first, second = get_level(level)
game_on(first, second, 0, 2, 0, level)
except WrongInputError:
main()
def get_level(x):
try:
x = int(x)
if 0 < x < 4:
first = generate_integer(x)
second = generate_integer(x)
return first, second
else:
raise WrongInputError
except ValueError:
raise WrongInputError
class WrongInputError(Exception):
\"\"\"You entered something wrong, try again \"\"\"
def generate_integer(level):
if level == 1:
integer = random.randrange(10)
return integer
elif level == 2:
x = str(random.randrange(1, 10))
y = str(random.randrange(10))
integer = int(x + y)
return integer
elif level == 3:
x = str(random.randrange(1, 10))
y = str(random.randrange(10))
z = str(random.randrange(10))
integer = int(x + y + z)
return integer
def game_on(x , y, count, lives, score, level):
game_set = [x, y]
try:
if count < 10:
calculation = int(input(f\"{x} + {y} = \"))
count += 1
if calculation == sum(game_set):
score +=1
first, second = get_level(level)
game_on(first, second, count, 3, score, level)
elif calculation == sum(game_set):
print(\"EEE\")
if lives > 0:
lives -= 1
count -= 1
game_on(x, y, count, lives, score, level)
elif lives == 0:
print(f\"{x} + {y} = {sum(game_set)}\")
first, second = get_level(level)
game_on(first, second, count, 2, score, level)
else:
print(f\"Score: {score}\")
except ValueError:
print(\"EEE\")
if lives > 0:
lives -= 1
game_on(x, y, count, lives, score, level)
elif lives == 0:
print(f\"{x} + {y} = {sum(game_set)}\")
first, second = get_level(level)
game_on(first, second, count, 2, score, level)
if __name__ == \"__main__\":
main()
main()
-
只是好奇,您不是根据最后 3 行运行代码两次吗?