while循环后,Python代码未继续

时间:2020-10-24 21:23:15

标签: python loops while-loop

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

public function update(Request $request, Post $contact)
{   
    $validatedData = $request->validate([
            'tags_id' => ['array'],
        ]);

    $contact->update($request->all());
    $contact->tags()->sync($validatedData['tags_id']); 

    return redirect()->route('contact.index')->with('success', 'Contact successfully updated!');
}

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

1 个答案:

答案 0 :(得分:0)

有一些错误。

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

confirm_user =“”

在一开始,而我们只是在if循环开始时

confirm_user =“是”

我将其更改为bool,状态在while循环中更改,当

confirm_user ==“是”

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

  2. 下面的行将杀死该程序,因为我们说发生了异常。

引发异常(“成功创建用户名!”)

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

相关问题