Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python模块返回True_Python_Python 2.7 - Fatal编程技术网

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:

我正在为一种计算机编写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:
            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
returning
None
混淆了
if
语句。您是该线程中唯一理解此问题的人,但请修复您的空白,尤其是Python。@TyStaszak yeah抱歉,比预期更早地按enter:)您是对的
login
返回
None
混淆了
if
语句。