问题描述
您好,我是一名学生,我在这里研究了太久,无法找到如何使此登录页面真正起作用的答案。我发现的所有页面都以对我不起作用的不同方式制作它们。任何人都可以关闭此代码,将我推向正确的轨道来创建它。不过,我的注册页面可以正常工作了。
def signup():
users = open("login_signup.txt","a")
user = []
username = input("What do you want your username to be?: ")
password = input("What do you want your password to be?: ")
user.append(username)
user.append(password)
users.write(username + "," + password)
users.write("\n")
print("You have successfully signed up")
def login():
with open("login_signup.txt","r") as users:
usersusername = input("What is your username?: ")
userspassword = input("What is your password?: ")
然后在下一个人想要创建帐户后转到新行。
感谢任何可以提供帮助的人:)
解决方法
由于您仍然遇到问题,因此请修改您的代码。
def signup():
with open("login_signup.txt","a") as users: # context manager is preferred over pure open/close
#user = [] # not used so remove
username = input("What do you want your username to be?: ")
password = input("What do you want your password to be?: ")
#user.append(username) # not used so remove
#user.append(password) # not used so remove
users.write(username + "," + password)
users.write("\n")
print("You have successfully signed up")
def login():
usersname = input("What is your username?: ")
userspassword = input("What is your password?: ")
with open("login_signup.txt","r") as users:
for line in users: # iterating over login file a line at a time
login_info = line.rstrip().split(',') # rstrip() removes the '\n' at end of string
# split(',' split string on comma
if usersname == login_info[0] and userspassword == login_info[1]:
print("Correct credentials!")
return True
print("Incorrect credentials.")
return False
示例运行
sigup()
# Out:
# What do you want your username to be?: john
# What do you want your password to be?: paul
# You have successfully signed up
login()
# Out:
# What is your username?: john
# What is your password?: paul
# Correct credentials!
# True