def login():
while True:
username = input("Please enter your username or x to quit: ")
if username.casefold() == "x":
break
else:
password = input("\nPlease enter your password: ")
if username =="" or password =="":
print("You cannot leave this blank,Please try again.")
else:
if len(username)>0 and len(password)>0:
for i in memberDict:
if username == i and password == memberDict[i]:
print(f"Login successful, Welcome Member, {memberDict[i]}")
statuslist.append(0)
break
else:
for i in adminDict:
if username == i and password == adminDict[i]:
print(f"Login successful, Welcome Admin, {adminDict[i]}")
statuslist.append(1)
break
else:
print("Login failed, There is no registered customers. Please try again.")
我试图通过两个不同的字典登录。字典工作正常,只是有问题,必须阅读他们两个和分开他们作为管理用户或成员
我正在尝试附加0作为成员,1作为管理员
第二个“admin”循环出现在成员dict循环中
也就是说,你应该:
但事实上,你可能不应该重复这些格言。您可以通过以下方式判断键
i
是在dict memberDict还是adminDict中行政官也是如此
为清晰起见,请编辑:
我想说的是,如果dict中存在一对
key
和value
的话,您正在尝试定位它。您不需要迭代dict(也就是说,使用for
循环)。您可以使用if i in memberDict
->;找出key
是否在dict中(在您的例子中,是MemberDict
中的用户名);如果键i
在dict中,则返回True,否则返回false如果memberDict和adminDict的内容不重复,那么您确实需要检查这两个dict中的所有用户,以检查用户是否存在,只需使用找到的变量,这样就可以将时间复杂度从O(member)*O(admin)降低到O(member)+O(admin)
相关问题 更多 >
编程相关推荐