登录菜单出现两次



我正在创建一个简单的程序,用于检查文本文件中的用户名和密码。如果找到用户名和密码,则打印一条消息并授予访问权限。如果详细信息正确,则返回成功消息,但是当我运行代码时,系统提示我输入两次用户名和密码。

这是代码

def login():
loginUsername = input("Enter Username: ")
loginPassword = input("Enter PASSWORD: ")
with open('password.txt') as data:
accounts = data.readlines()
userfound = False

for line in accounts:
splitline = line.split("t")

if loginUsername == splitline[0] and loginPassword == splitline[1]:
userfound = True
break 


return userfound
options = input("please make a choice 1 to register a new user account, 2 to login or 3 to exit to program n")
user_found = login()
if options == "1":
register()
elif options == "2":
login()
elif options == "3":
sys.exit()
else:
print("Please make a valid choice")

if user_found:        
print("LOGGED IN")
# print menu 
else:
print("Login FAILED")

这是程序运行时发生的情况。在本例中,执行了错误的详细信息

请选择1注册新用户帐户,2登录或3退出程序2输入Username: 22输入密码:www输入用户名:www输入密码:www登录失败

login被调用两次。关于user_found = login()

elif options == "2":
login()

你应该只在if-else语句中包含它。

if options == "1":
register()
elif options == "2":
user_found = login()
elif options == "3":
sys.exit()
else:
print("Please make a valid choice")

输入用户名和密码的提示符显示了两次,因为无论用户在下一行选择什么,login()都会调用一次。

user_found = login()

当用户输入选项2时,第二次调用相同的login()。

elif options == "2":
login()

如果我正确理解你的要求,代码需要修改如下:

options = input("please make a choice 1 to register a new user account, 2 to login or 3 to exit to program n")

if options == "1":
register()
elif options == "2":
user_found = login()
elif options == "3":
sys.exit()
else:
print("Please make a valid choice")

if user_found:        
print("LOGGED IN")
# print menu 
else:
print("Login FAILED")

最新更新