python - sys.exit() 导致意外错误导致“repl 进程意外死亡”
问题描述
我正在使用 repl.it 对登录/注册屏幕进行编码。Python中的代码如下:
while True:
print("""
============MAIN MENU================
*Welcome*
1. Register
2. Login
3. Quit
""")
x=input("Enter choice:")
if int(x)==1:
register()
elif int(x)==2:
login()
elif int(x)==3:
print("Goodbye then!")
sys.exit()
它工作正常,但在按下选项 3 时,它会打印到屏幕上,但随后会显示此错误:
repl process died unexpectedly:
当我过去使用 sys.exit 时,它只是诉诸简单的退出(光标闪烁)并且没有错误消息。
我做错了什么,出于教学目的,这里的最佳实践是什么?
解决方案
我建议您将代码更改为:
while True:
print("""
============MAIN MENU================
*Welcome*
1. Register
2. Login
3. Quit
""")
x = int(input("Enter choice: "))
if x == 1:
register()
elif x == 2:
login()
elif x == 3:
print("Goodbye then!")
break
不建议sys.exit()
在迭代中使用方法而不是break
在循环外执行所有必要的操作。至于为什么它会引发错误,sys.exit()
使迭代操作崩溃并终止程序。所以首先break
跳出循环总是一个好习惯。
推荐阅读
- driver - 如何将wifi驱动程序添加到buildroot
- json - 如何在 Kotlin 中解析 JSON 数组
- facebook - (#200) 该应用程序未列入使用此 API 的白名单
- c++ - std::map::operator[] 比 std::map::insert 更高效?
- wordpress - 更改悬停菜单颜色
- css - 如何在图像上获得透明波浪边框效果
- sql - Laravel 查询不使用 where 子句作为日期
- javascript - 如果接受断开/连接 Web 套接字,WebSocket 不会重新连接
- bash - 如何在shell脚本的字符串中使用参数?
- java - Java javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1] 消息:prolog 中不允许内容