比较相等的字符串返回False?

时间:2017-01-28 05:18:00

标签: python string comparison

所以我正在制作一个基本的临时登录验证,只需要一个基本的文本文件来“假装”,什么应该返回True不是。用户名检查有效,但不是密码检查

@staticmethod
def validate_login(filename,username,password):
    file = open(filename,'r')
    file.readline()
    for line in file:
        i = [i for i, char in enumerate(line) if char == '|']
        print username == line[i[0] + 2:i[1]-1]
        print password == line[i[1] + 2:]
        print password
        print line[i[1] + 2:]
        if username == line[i[0] + 2:i[1]-1] and password == line[i[1] + 2:]:
            file.close()
            print "Login Successful."
            return True

    file.close()
    print "Failed to login. Invalid username or password."
    return False

这是输出结果。密码与文本文件完全匹配,但返回false。用户名返回true。究竟是什么问题?这让我疯了。

True <--- username matched correctly returns true
False <---passwords apparently don't match, returns false.
DopeFiend97 <--password
DopeFiend97

1 个答案:

答案 0 :(得分:1)

必须使用.strip()函数删除行尾的无法预料的字符。