python-3.x - 绕过程序中 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 语句执行的有效方法。
解决方案
推荐阅读
- c - 防止 GCC 合并大括号组中的变量
- r - 如何使用整数列表作为一个整数函数的输入并获得一个列表作为输出?
- c++ - 无法使用 EGL/OpenGLES 上下文创建 OpenCL 上下文共享
- python - 如何增加turtle.tracer() 的延迟?[PYTHON]
- python - Django 我如何编辑评论
- r - 在 r 中编写 for 循环以组合具有匹配名称的列(几乎没有差异)
- python - 基于变量值的着色点
- javascript - 如何使用getOptionLabel设置react select的值
- php - 显示有工作机会的地区和城市
- python - 用 cv2.VideoWriter 写视频