Python 登录系统不工作!Can';t确认登录信息
基本上,我要做的是确认file.txt中的register=login信息。我找不到我犯的错误,所以如果有人能帮我,那就太棒了Python 登录系统不工作!Can';t确认登录信息,python,Python,基本上,我要做的是确认file.txt中的register=login信息。我找不到我犯的错误,所以如果有人能帮我,那就太棒了 def login(): user_login = input ("Type your username: ") user_password = input ("Type your password: ") for name in user_login: a,b = name.split(&qu
def login():
user_login = input ("Type your username: ")
user_password = input ("Type your password: ")
for name in user_login:
a,b = name.split(",")
if (a==user_register and b==user_password):
print ("Login succesfull")
else:
print ("Login failed")
def register():
global user_register
global user_password
user_register = input ("Type username: ")
user_password = input ("Type password: ")
file = open("file.txt", "a")
file.write(user_register+","+user_password+"\n")
file.close()
print("Registered")
login()
您的代码不是很整洁,我认为没有必要为这样一个简单的操作定义全局变量 尝试以下OOP结构:
import os
class UsersManager:
def __init__(self, users_file: str):
self.users = users_file
if not os.path.exists(users_file):
with open(users_file, 'a') as file:
file.close()
def user_exists(self, username: str, password: str) -> bool:
with open(self.users, 'r') as file:
for line in file.readlines():
data = line.replace('\n', '').split(',')
if data[0] == username and data[1] == password:
return True
return False
def login(self, username: str, password: str) -> bool:
if self.user_exists(username, password):
return True
return False
def register(self, username: str, password: str) -> bool:
if self.user_exists(username, password):
return False
with open(self.users, 'a') as file:
file.write(f'{username},{password}\n')
return True
if __name__ == "__main__":
user = 'Mark'
pwd = 'Markspassword'
manager = UsersManager('users.txt')
if manager.user_exists(user, pwd):
manager.login(user, pwd)
print('Login complete!')
else:
print('Adding a new user...')
manager.register(user, pwd)
print(f'New user ({user}) registred with password: {pwd}')