Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python代码在while循环后不继续_Python_Loops_While Loop - Fatal编程技术网

Python代码在while循环后不继续

Python代码在while循环后不继续,python,loops,while-loop,Python,Loops,While Loop,我是python的初学者,所以这可能是一个愚蠢的问题。 我正在尝试制作一个登录程序来练习到目前为止所学的内容,但是python在满足while条件后不会继续阅读我的其余代码。这是我的代码,以防您不理解我的意思 def register(): confirm_user = "" username_reg = "" pass_enter = "" pass_confirm = ""

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

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()

在输入“register”和用户名并说“yes”以确认程序只是停止,不继续其余的注册功能后,我不知道为什么…

出现了一些错误

第一个While循环将永远不会被输入,因为 确认用户=

在开始时,我们仅在以下情况下启动while循环

确认用户=是

我把它改成了bool,在while循环中,当

确认用户==是

写入后应关闭该文件,并将w更改为a,以便追加新用户,且不会覆盖该文件

下面的行将终止该程序,因为我们说异常已发生

已成功创建raise ExceptionUsername

在第二个while循环中,我们遇到了与第一个循环相同的问题

与写入密码文件的操作相同


你的意思是不平等吗?确认用户时!=对:。现在,只有当用户不说“是”时,程序才会继续。while循环的目的是什么?输入在循环外部处理…confirm\u user初始化为空字符串,因此while confirm\u user==yes循环将永远不会执行。同样,pass_enter和pass_confirm初始化为空字符串,因此while pass_enter!=pass\u confirm循环将永远不会执行。请提供预期值。显示中间结果与预期结果的偏差。我们应该能够将单个代码块粘贴到文件中,运行它,并重现您的问题。这也让我们可以在您的上下文中测试任何建议。您为5行问题发布了大约50行代码,并且您的示例要求我们输入测试输入。@ JohnGordon,所以我应该删除空白字符串吗?我刚试过,但仍然有同样的问题。你关闭了文件吗?第二个while循环没有开始,因为它们在开始时是相同的。这两个都是问题,当我删除变量时,它要求我定义变量,所以idk做什么添加用户名。\u enter.close右键输入用户名。\u enter.write仍然有同样的问题吗尽量不让人讨厌,我真的很感谢你的帮助,但现在我逐字复制了你的代码,但在我输入用户名并说“是”以确认后,它一直要求我再次输入用户名

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()