Python模块返回True
我正在为一种计算机编写Python,登录模块总是返回true,即使它不在Python模块返回True,python,python-2.7,Python,Python 2.7,我正在为一种计算机编写Python,登录模块总是返回true,即使它不在users字典中: cur_user = "null" users = { "Splavacado100": "20310" } def login(): good_login = 0 user_name = raw_input("Enter your username: ") for user in users: if user == user_name:
users
字典中:
cur_user = "null"
users = {
"Splavacado100": "20310"
}
def login():
good_login = 0
user_name = raw_input("Enter your username: ")
for user in users:
if user == user_name:
good_login = 1
if good_login == 1:
user_password = raw_input("Enter your password: ")
if users[user_name] == user_password:
return True
else:
return False
else:
return "None"
def OS():
log_att = False
log_att = login()
if log_att:
print "True"
else:
print "False"
OS()
在这些情况下,如何使其返回false
我正在使用Python 2.7.10。第二种方法有问题。我把它拿出来,第一部分开始工作。然后我拿出了第一种方法中的最后一种,似乎奏效了。试一试
你的第二种方法有问题。我把它拿出来,第一部分开始工作。然后我拿出了第一种方法中的最后一种,似乎奏效了。试一试
与其返回“无”,不如返回“无”(因为“无”是一个非零值,所以始终为真)。与其返回“无”,不如返回“无”(因为“无”是一个非零值,所以始终为真)。我认为您的登录函数应该更像
def login():
raw_user = raw_input("Enter your username: ")
password = users.get(raw_user)
if not password:
return False
raw_password = raw_input("Enter your password: ")
if password == raw_password:
return True
return False
然后可以简化第二个功能:
def OS():
if login():
print "True"
else:
print "False"
我认为你的登录功能应该更像
def login():
raw_user = raw_input("Enter your username: ")
password = users.get(raw_user)
if not password:
return False
raw_password = raw_input("Enter your password: ")
if password == raw_password:
return True
return False
然后可以简化第二个功能:
def OS():
if login():
print "True"
else:
print "False"
你有一本字典。您不需要迭代所有键来检查用户是否存在请陈述您的问题代码将返回
True
,即使我输入的不是users
字典中的内容,如“hi”。您有两个输入。如果你有答案,请修改我的代码并用它回答问题。你有字典。您不需要迭代所有键来检查用户是否存在请陈述您的问题代码将返回True
,即使我输入的不是users
字典中的内容,如“hi”。您有两个输入。如果您有答案,请修改我的代码并用它回答问题。True<代码>“无”是一个固有的True
字符串None
本质上是False
。True<代码>“无”是一个固有的True
字符串None
本质上是False
。您是该线程中唯一理解此问题的人,但请修复您的空白,尤其是Python的空白。@TyStaszak是的,对不起,比预期的早按enter:)您是对的login
returningNone
混淆了if
语句。您是该线程中唯一理解此问题的人,但请修复您的空白,尤其是Python。@TyStaszak yeah抱歉,比预期更早地按enter:)您是对的login
返回None
混淆了if
语句。