繁体   English   中英

Python代码在while循环后不继续

[英]Python code not continuing after while loop

我是使用 python 的初学者,所以这可能是一个愚蠢的问题。 我正在尝试制作一个登录程序来练习我到目前为止所学到的知识,但是在满足 while 条件后,python 不会继续阅读我的其余代码,这是我的代码,以防您不明白我的意思

def register():
    confirm_user = ""
    username_reg = ""
    pass_enter = ""
    pass_confirm = ""
    
    while confirm_user == "yes":
        username_reg = input("Please enter a username you would like to use: ")
        confirm_user = input("Would you like to confirm this username?: ")
    if confirm_user == "yes":
        username_enter = open("username.py", 'w')
        username_enter.write(username_reg)

        raise Exception("Username created successfully!")


    elif confirm_user == "no":
        print("Choose a different username")
    else:
        print("Invalid input please enter yes or no")
    while pass_enter != pass_confirm:
        pass_enter = input("Please enter a password you would like to use: ")
        pass_confirm = input("Please confirm password by re-typing it: ")
    if pass_enter == pass_confirm:
        password_enter = open("password.py", 'w')
        password_enter.write(pass_enter)
    elif pass_enter != pass_confirm:
            print("Passwords do not match please re-enter password and re-confirm")


def login():
    pass_log = ""
    user_log = ""
    pass_check = open("password.py", 'r')
    user_check = open("username.py", 'r')
    while user_log != user_check.readline():
        user_log = input("Please enter your username: ")
        if user_log != user_check.readline():
            print("This username does not exist, please enter a valid username")
        elif user_log == user_check.readline():
            while pass_log != pass_check.readline():
                pass_log = input("Please enter your password: ")
                if pass_log != pass_check.readline():
                    print("This password is incorrect, please re-enter your password")
                elif pass_log == pass_check.readline():
                    print("Welcome back " + user_check.readline())


intro = input("Welcome, to login type 'login' to register a new account type 'register': ")
if intro == "register":
    register()
elif intro == "login":
    login()

输入“注册”并输入用户名并说“是”以确认程序停止后,不会继续注册()函数的其余部分,我不知道为什么......

有几个错误。

  1. 永远不会进入第一个 While 循环,因为

确认用户 = ""

在开始时,我们只启动 while-Loop 如果

Confirm_user = "是"

我把它改成一个布尔值,当循环中的状态发生变化时

确认用户==“是”

  1. 写入后应关闭文件,并将“w”更改为“a”,以便附加新用户并且不会覆盖文件

  2. 以下行将终止程序,因为我们说发生了异常。

raise Exception("用户名创建成功!")

  1. 在第二个 while-Loop 中,我们遇到了与第一个相同的问题

  2. 与写入密码文件相同


def register():
    confirm_user = ""
    confirmed = False
    username_reg = ""
    pass_enter = ""
    pass_confirm = ""
    same = False
    
    while confirmed == False:
        username_reg = input("Please enter a username you would like to use: ")
        confirm_user = input("Would you like to confirm this username?: ")
        if confirm_user.lower() == "yes":
            confirmed = True
    
    username_enter = open("username.txt", 'a')
    username_enter.write(username_reg)
    username_enter.close()
    print("Username created successfully!")

    while same == False:
        pass_enter = input("Please enter a password you would like to use: ")
        pass_confirm = input("Please confirm password by re-typing it: ")
        if pass_enter == pass_confirm:
            same = True
        else:
            print("Passwords do not match please re-enter password and re-confirm")
    
    password_enter = open("password.txt", 'a')
    password_enter.write(pass_enter)
    password_enter.close()

def login():
    pass_log = ""
    user_log = ""
    pass_check = open("password.py", 'r')
    user_check = open("username.py", 'r')
    while user_log != user_check.readline():
        user_log = input("Please enter your username: ")
        if user_log != user_check.readline():
            print("This username does not exist, please enter a valid username")
        elif user_log == user_check.readline():
            while pass_log != pass_check.readline():
                pass_log = input("Please enter your password: ")
                if pass_log != pass_check.readline():
                    print("This password is incorrect, please re-enter your password")
                elif pass_log == pass_check.readline():
                    print("Welcome back " + user_check.readline())


intro = input("Welcome, to login type 'login' to register a new account type 'register': ")
if intro == "register":
    register()
elif intro == "login":
    login()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM