首页 > 解决方案 > 当输入条件为真时,'If'循环'和不打印消息

问题描述

我正在尝试编写一个迷你代码来检查用户/键输入是否正确,代码是下一个:

if emailstatus == True and email in UserKeys == True and UserKeys [email] == key :

  print ('Checked,  you can log in ')    

else:

  print ('wrong email or password, you can not log in')
'''

当我输入正确的电子邮件和密码时,我仍然无法登录(这会生成三重 True 值

我修复了这个问题,在( UserKeys 中的电子邮件)中的 if 条件中添加“()” == True

但我仍然不明白这个错误背后的逻辑

pd:完整的程序代码是这样的

应该用文本替换,代码图像不可访问,不可搜索,并且那些试图帮助您的人无法复制它们

标签: pythonemailif-statementlogic

解决方案


您的问题在于您正在检查凭据的 if 条件。

你写:

if emailstatus==True and email in UserKeys==True and UserKeys[email]==key:

在这里你可以做两件事:

1)要么删除==True

改动后(一):if emailstatus==True and email in UserKeys and UserKeys[email]==key:

2)或将电子邮件放在括号中的 UserKeys 中,如下所示:(email in UserKeys)==True

改动后(2):if emailstatus==True and (email in UserKeys)==True and UserKeys[email]==key:

实际上,如果该电子邮件存在则email in UserKeys返回True,因此您不必明确检查它


推荐阅读