首页 > 解决方案 > 无法脱离登录系统

问题描述

登录系统我不会跳出循环。我已经向我的 CS 老师展示了这个,他告诉我改变休息的缩进。它没有用。我一直在环顾四周,但似乎找不到循环不会中断的原因。这是代码:

while True:
    print("User 1")
    login=input("Do you have an account? (yes/no) ")
    loggedin=False
    if login.lower()=="yes":
        login1=open("login.csv")
        reader = csv.reader(login1)
        username1=input("What is your username: ")
        password1=input("What is your password: ")
        for row in reader:
            if row[0]==username1:
                if row[1]==password1:
                    print("Welcome " + username1)
                    loggedin=True
                    break
        if loggedin==False:
            print("Invalid username or password. Please try again.")
            continue

该代码询问用户是否有帐户。当我输入 yes 并提供有效的用户名和密码时,它会继续循环。对于用户登录时的上下文,它表示欢迎并跳出循环。然而这并没有发生,而是说欢迎并重新启动循环。用于此的 csv 包含登录详细信息。

任何关于为什么循环不会中断的帮助将不胜感激。

迪伦

标签: pythonloopslogin

解决方案


像这样的东西?我的意思是你已经有一个“loggedin”变量,为什么不在while循环中使用它......

loggedin = False
while not loggedin:
    print("User 1")
    login=input("Do you have an account? (yes/no) ")
    loggedin=False
    if login.lower()=="yes":
        login1=open("login.csv")
        reader = csv.reader(login1)
        username1=input("What is your username: ")
        password1=input("What is your password: ")
        for row in reader:
            if row[0]==username1 and row[1]==password1:
                print("Welcome " + username1)
                loggedin=True
                break
        if loggedin==False:
            print("Invalid username or password. Please try again.")
            continue

推荐阅读