我正在编写代码来实现用户登录系统,在该系统中,用户将输入其详细信息,例如姓名和通行证,这些信息将存储在文本文件中。当他尝试登录时,它将询问用户名和密码,并与先前创建的文本文件中存储的用户名和密码匹配。
可能无法正确搜索文本文件中的问题
user=str(input('Do u have registration(Y/N): \n '))
if user =='Y':
print('Please login now:')
boom=str(input("Enter your name: "))
pass_inp=str(input('Enter your password: \n'))
with open('user_database.txt','r') as f:
if pass_inp in f.readlines() and boom in f.readlines():
print('Welcome User')
else:
print('Invalid Login ID')
elif user == 'N':
print('Please register now,fill the following details:')
name=str(input("Register your name: \n"))
password =str(input('Create your password:\n'))
with open("user_database.txt",'a') as f:
f.write(name+'\n')
f.write(password+'\n')
print('Account successfully created')`````````
撇开将密码和用户以纯文本格式保存在文件中并允许用户名和密码相同的原因,请检查f.write(name+'\n')
中的'\ n'是否引起问题。(肯定是)
您正在使用]阅读两次文本文件>
if pass_inp in f.readlines() and boom in f.readlines():
将内容设置为变量,然后检查变量的名称和密码。
contents = f.readlines() if pass_inp in contents and boom in contents:
Previous solution to this problem。该解决方案的优势在于,只需进行少量编码更改,就可以在检查您当前使用的方法中没有的时候区分用户名和密码。
希望注释有助于您理解逻辑: