Python 函数不可调用?

Python 函数不可调用?,python,Python,我试图学习python,但在编写一个简单的登录页面时遇到了一个问题 def Login(): print("Login System") print("\n") print("1 - Login") print("2 - Create an Account") PassCheck = False UserCheck = False Login = Fa

我试图学习python,但在编写一个简单的登录页面时遇到了一个问题

def Login():
    
    print("Login System")
    print("\n")
    print("1 - Login")
    print("2 - Create an Account")
    PassCheck = False
    UserCheck = False
    Login = False
    selec = input("What do you want to do?: ")

    if selec == '1':
        print("Input your credentials")
        usernameLog = input("Input you username: ")
        usertxt = open("user.txt", "r")
        if usernameLog == usertxt.read():
            UserCheck = True
        else:
            UserCheck = False
            usertxt.close()

        passwordLog = input("Input you password: ")
        passwordtxt = open("pass.txt", "r")
        if passwordLog == passwordtxt.read():
            PassCheck = True
        else:
            PassCheck = False
            passwordtxt.close()
        
        if UserCheck and PassCheck == True:
            print('\n')
            print('\n')
            print('You Logged In')
        else:
            print('\n')
            print('\n')
            print('Username or password incorrect')
            Login()
Login()

它以前是工作的,只是停止了工作。它表示Login()函数不可调用。

尝试更改Login变量的名称。最好将函数名改为小写。 也可以尝试下面的代码。我只是将(如果selec==“1”)更改为(如果selec==1)


您在函数中创建了一个局部变量
Login=False
,该变量在本地隐藏了函数的全局变量
Login
。python的惯例是使用
小写下划线来命名变量和函数,而类则使用
CamelCase
。在代码中,函数和变量都使用了
Login
。删除
Login=False
行!不是在第一种情况下,我没有看到递归,所以,这里不要使用递归。循环会更好。这不起作用。我使用的是返回字符串的输入。
def Login(): 

    print("Login System")
    print("\n")
    print("1 - Login")
    print("2 - Create an Account")
    PassCheck = False
    UserCheck = False

    selec = input("What do you want to do?: ")

    if selec == 1:
        print("Input your credentials")
        usernameLog = input("Input you username: ")
        usertxt = open("user.txt", "r")
        if usernameLog == usertxt.read():
            UserCheck = True
        else:
        UserCheck = False
        usertxt.close()

        passwordLog = input("Input you password: ")
        passwordtxt = open("pass.txt", "r")
        if passwordLog == passwordtxt.read():
            PassCheck = True
        else:
            PassCheck = False
            passwordtxt.close()
    
        if UserCheck and PassCheck == True:
            print('\n')
            print('\n')
            print('You Logged In')
        else:
            print('\n')
            print('\n')
            print('Username or password incorrect')
            Login()

Login()