我已经为此工作了很长时间。它应该很简单,我经历了许多不同的组合,但是,我一直在弄错代码,也不知道为什么。当我进行手动输入时,它可以正常工作,但是在提交时出现错误。
问题提示: 编写一个程序,其中包含名称及其对应的电话号码的字典。
反复要求用户输入名称。然后,根据输入的内容执行以下三项操作之一:
如果他们什么都不输入,请退出程序。 如果他们输入的名称在您的词典中作为键存在,则只需打印相应的电话号码即可。 如果他们输入不在词典中的名称作为键,请询问用户电话号码,然后将名称和电话号码放入词典中。 打印出最终的字典。
我的代码:
phoneBook = {}
name = input("Please enter a name(or press enter to end input): ")
while name != '':
if not name in phoneBook:
number = input("Please enter number: ")
print "Phone number: " + number
phoneBook[name] = number
name = input("Please enter a name(or press enter to end input): ")
if name in phoneBook:
print phoneBook[name]
if name == '':
break
print phoneBook
预期结果:
Phone number: 1234
Phone number: 5678
{'Tracy': '5678', 'Karel': '1234', 'Steve': '9999'}
我的结果:
Phone number: 1234
Phone number: 5678
Phone number: 9999
1234
Phone number: 9999
5678
Phone number: 9999
{'Tracy': '9999', 'Karel': '9999', 'Steve': '9999'}
答案 0 :(得分:0)
phoneBook = {}
name = input("Please enter a name(or press enter to end input): ")
while name != '':
if not name in phoneBook.keys():
number = input("Please enter number: ")
phoneBook[name] = number
print "Phone number: " + number
name = input("Please enter a name(or press enter to end input): ")
else:
print phoneBook[name]
print phoneBook
尝试上面的代码。
当电话簿中没有名称时,请为该名称分配一个号码,因此phoneBook[name] = number
应该在if not name in phoneBook.keys():
块中。然后在相同的if块中输入另一个名称。
答案 1 :(得分:0)
您还必须访问字典键以检查名称的存在:
if not name in phoneBook.keys():