Python中run_game返回整数但main接收的score为None该如何修复
问题原因
你的start_game函数没有显式返回run_game()的执行结果,Python中所有没有写return语句的分支,函数默认返回None,这就是你拿到的score变成None的核心原因。
修复方案
修改start_game函数,在调用run_game()的位置加上return即可:
def start_game(): ''' This will ask user if they want to play or not, it then calls upon run_game(). ''' start = input("Would you like to take the pokemon quiz?(Y/N):") if start.upper() == "Y": # 这里加上return,把run_game返回的score透传出去 return run_game() else: quit()
其他可优化的小问题
- 你
answers列表里的"Glaceon,"多了一个英文逗号,用户输入Glaceon的时候会匹配失败,建议删掉多余的逗号改成"Glaceon" - 目前单局游戏只出1道题,但是
game_end函数里提示是“points out of 5”,可以调整游戏逻辑或者修改提示文本保持一致 play_again函数里用了递归调用自己,玩的次数多了会有栈溢出风险,建议改成循环逻辑实现重开功能
内容的提问来源于stack exchange,提问作者Tylerdean5
相关产品推荐
相关产品推荐

