Python 为什么程序没有经过循环?

Python 为什么程序没有经过循环?,python,Python,我正在制作一个程序,它可以检查文件中的用户名和密码,也可以添加到文件中。 但是在注册时,当我尝试检查用户名是否已经在文件中时,它会完全忽略它并转到下一行。有办法解决吗?我以前让它工作过,但因为我把它变得更复杂了,它就停止工作了 import sys def login(): while True: username = input("Please enter the username: ") password =

我正在制作一个程序,它可以检查文件中的用户名和密码,也可以添加到文件中。 但是在注册时,当我尝试检查用户名是否已经在文件中时,它会完全忽略它并转到下一行。有办法解决吗?我以前让它工作过,但因为我把它变得更复杂了,它就停止工作了

import sys

def login():

    while True:
        
        username = input("Please enter the username: ")
        password = input("Please enter the password: ")
        userpass = (username + ":" + password)
        file = open("UserPass.txt", "r")
        for line in file:
            if userpass in line:
                print("Login Successful!")
                sys.exit()
        print("Incorrect credentials!")
        start()

def register():

    while True:
        
        username = input("Please enter a username: ")
        file = open("UserPass.txt", "a+")
        for line in file:
            if username in line:
                print("That username is already in use!")
                start()
        password = input("Please enter a password: ")
        userpass = (username + ":" + password)
        file.write(userpass + "\n")
        print("Successfully registered!")
        sys.exit()

def start():

    while True:
        
        choice = input("Do you want to login or register?: ")

        if choice == "login":
            login()
            break
        elif choice == "register":
            register()
            break
        else:
            print("Not a valid choice.")

start()
您正在登录和注册中使用sys.exit以保持文件打开。使用file.Close关闭文件