首页 > 解决方案 > 如何将登录名从外部文件更改为循环?

问题描述

我想将外部文件中的凭据读取到一个循环中,因此每次密码不正确时它都会再次询问我。

def register():
    username = input("Please input the first 2 letters of your first name and your birth year ")
    password = input("Please input your desired password ")
    file = open("accountfile.txt","a")
    file.write(username)
    file.write(" ")
    file.write(password)
    file.write("\n")
    file.close()
    if login():
        print("You are now logged in...")
    else:
        print("You aren't logged in!")

def login():
    username = input("Please enter your username")
    password = input("Please enter your password")  
    for line in open("accountfile.txt","r").readlines(): 
        login_info = line.split() # Split on the space, and store the results in a list of two strings
        if username == login_info[0] and password == login_info[1]:
            print("Correct credentials!")
            return True
    print("Incorrect credentials.")
    return False

标签: pythonloops

解决方案


只需这样做:

def register():
    username = input("Please input the first 2 letters of your first name and your birth year ")
    password = input("Please input your desired password ")
    with open("accountfile.txt","a") as file:
        file.write(username)
        file.write(" ")
        file.write(password)
        file.write("\n")
    log = 0
    while log != 1:
        if login():
            log = 1
            print("You are now logged in...")
        else:
            log = 0
            print("You aren't logged in! Please try again...\n")

推荐阅读