我无法正确比较用户输入与预先填充的字典值
问题描述:
我想在python中制作一个任意的用户名和密码程序 我有一个填充了一系列用户名和值的字典 我无法比较用户输入与字典用户名和值。 他们似乎不可比较。我无法正确比较用户输入与预先填充的字典值
textFile = open('names.txt','r')
dictionary = {}
for lines in textFile:
splatLine=lines.split('\t')
dictionary[splatLine[3]]= splatLine[4]
print dictionary
userName= raw_input("what is your UserName:")
password= raw_input("what is your Password:")
答
假设你正确地阅读文本,这将工作。
dictionary = {"foo":"bar","Johnny":"Appleseed"}
uname = "foo"
pw = "nobar"
for i in dictionary:
if uname == i:
if dictionary[i] == pw:
print "You're in"
else:
print "all your base are belong to us"
答
你最好使用与语句来关闭自动打开一个文件,否则不要忘记关闭您的文件后阅读。另外,readline文件的方法将返回一行尾随换行符字符,您需要在与用户输入比较之前将其去掉。
with open('names.txt','r') as f:
pwd_dict=dict([line.strip().split('\t')[3:5] for line in f])
userName= raw_input("what is your UserName:")
password= raw_input("what is your UserName:")
if not (username in pwd_dict and password == pwd_dict[username]):
... ...
代码中的哪个位置正在执行比较? –
您的字典值中仍然有行结尾(\ n),您的用户输入不会。在将它们添加到字典之前,从names.txt中删除您读取的行。 –