首页 > 解决方案 > 绕过程序中 main() 的执行

问题描述

我有一个为拼字游戏评分的程序,main()程序末尾的函数根据用户输入调用所需的函数。

def main():
    option = home()
    if option.lower() == "a":
        add_score()
    elif option.lower() == "v":
        view_scores()
    elif option.lower() == "u":
        undo()
    elif option.lower() == "end":
        end_game()
    else:
        print("Please enter a valid option.")
        main()

在程序的最后,有一个 if 函数来检查它是否被用作导入。

if __name__ == "__main__":
    main()

还有一个功能end_game(),它打印分数并应该结束游戏。

def end_game():
    for name, score in players:
        print("Player %s has a score of %d" % (name, score))

当用户键入“end”并end_game()执行函数后,就会出现问题。在结束游戏执行后,它会运行到 if 函数检查程序末尾的导入,这会再次触发 main。基本上,用户陷入了只能使用 CTRL+C 退出的循环。将name设置为不同的值(例如“stop”)是绕过 if 语句的有效方法。我之前没有看到有人在代码中更改名称,所以我不确定这是否是阻止 if 语句执行的有效方法。

标签: python-3.x

解决方案


推荐阅读