python - 回到 start 函数会停止脚本
问题描述
我正在制作一个程序,您可以在其中登录、注销和访问一些设置,但我似乎在注销后遇到了问题。我只是通过调用包含登录代码的函数来进行注销,但是当它达到注销状态时,它只是结束脚本而不是返回。编码:
def main():
UserName = input ("Enter Username: ")
if UserName == 'a':
print ("Login successful")
logged()
else:
print ("Username is incorrect")
main()
def logged():
print ("starting system...")
main()
print("welcome to joop databases")
def options():
print (" ")
print ("[1]", end =" ")
print ("Settings")
print(" ")
Selection = input ("")
if Selection == '1':
print (" Settings")
print (" ")
print ("[x]", end =" ")
print ("close")
print (" ")
print ("[1]", end =" ")
print ("Log out")
print (" ")
Settings = input('')
if Settings == 'x':
options()
elif Settings == '1':
main()
options()
无论如何我是一个绝对的初学者,我昨天开始的,所以如果你能给出简单的答案,那将不胜感激哈哈。
解决方案
在此处编辑您的代码
import sys
def main():
#your code
if UserName == 'a':
logged()
else:
main()
def logged():
#your code
option()
def option():
#your code
if Settings == 'x':
#here i'm considering `x` to quit the program
sys.exit()
elif Settings == '1':
main()
else:
print("invalid input)
option()
main()
您的代码问题:-您正在调用main()
,如果登录成功,您正在调用logged()
。
然后你打电话options()
,setting=='1'
它会打电话main()
。再次,如果登录成功,您正在调用logged()
. 但在此之后,焦点将返回到option()
,因此您的代码结束。
推荐阅读
- c# - 如果未回答,则在 3 天后从数据库中删除问题对象
- mysql - 全部插入mysql
- nginx - nginx 301 重定向
- python - 看门狗忽略模式
- amazon-web-services - 域出现内部服务器错误,但 ip 有效
- acumatica - CreateSalesPrice 方法中的数据分配错误
- opencv - 尝试安装额外模块 + CUDA 时链接错误无法打开输入文件 opencv_world440.lib
- ruby-on-rails - 验证问题之前的 Rspec
- java - Android 项目和 Java / C++ 优化
- amazon-web-services - 如何指定我的 Elastic Beanstalk 应用程序只需要 Spot 实例?