UnboundLocalError:赋值之前引用了局部变量“username”(在函数的返回部分)

2024-10-03 13:16:45 发布

您现在位置:Python中文网/ 问答频道 /正文

def login():
    userinfo = open("userinfo.txt","r")
    userinforec = userinfo.readline()
    username1 = input("What is your username?\n")
    while userinforec != "":
        field = userinforec.split(",")
        username = field[0]
        password = field[1]
        name = field[2]
        age = field[3]
        year = field[4]
        mathseasy = field[5]
        mathsmed = field[6]
        mathshard = field[7]
        hiseasy = field[8]
        hismed = field[9]
        hishard = field[10]
        if username != username1:
            print("Error, username not found")
            break
        else:
            password1 = str(input("What is your password?\n"))
            if password == password1:
                print("password accepted")
                writereport(username)
            else:
                print("Error, password not accepted")
                login()
            userinforec = userinfo.readline()
    userinfo.close()
    return username

正如标题中所述,当我运行这段代码时,它说最后一行(returnusername)是在赋值之前引用的。在

UnboundLocalError: local variable 'username' referenced before assignment

我看了其他线程,如果变量在函数之外,那么这一切都会发生,但是这里没有。我还需要使用global还是有其他方法来解决这个问题?在


Tags: fieldinputyourreadlineifisusernamelogin
1条回答
网友
1楼 · 发布于 2024-10-03 13:16:45

如果从未输入while循环,例如,因为userinforec == ""在给它赋值之前返回username。在

在while循环之前添加username = "",如果在while循环期间从未赋值,那么is就有一个值。在

相关问题 更多 >