首页 > 解决方案 > 回到 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()

无论如何我是一个绝对的初学者,我昨天开始的,所以如果你能给出简单的答案,那将不胜感激哈哈。

标签: pythonrecursion

解决方案


在此处编辑您的代码

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(),因此您的代码结束。


推荐阅读