我收到以下代码的密钥错误。我正在阅读名为names.txt的文件,该文件同时具有人名和年龄。所有名称都是小写的但是当我在字典中搜索时使用name.lower()函数时,它会抛出键错误。
fo = open('names.txt' ,'r')
data = fo.readlines()
fo.close()
dicti = {}
for i in data:
new_list = i.split(',')
dicti[new_list[0].lower()] = new_list[1].strip('\n')
name = input ('enter the name to be searched: ')
if name.lower() in dicti.keys():
print (dicti[name])
elif name == 'exit':
quit()
else:
print ('name ' + name.title() + ' not found')
文件names.txt数据是:
Sophia,35
Emma,28
Olivia,16
Isabella,10
Ava,9
Mia,26
Emily,4
Abigail,33
有人可以告诉我有关错误的信息。
答案 0 :(得分:0)
因此:
if name.lower() in dicti.keys():
print (dicti[name])
您检查较低的名称是否在dicti中,但随后按原样访问,而不进行小写转换。正确的代码是:
if name.lower() in dicti.keys():
print (dicti[name.lower()])