带有userInput的字典电话簿,但有所不同

时间:2019-04-01 00:58:48

标签: python

我已经为此工作了很长时间。它应该很简单,我经历了许多不同的组合,但是,我一直在弄错代码,也不知道为什么。当我进行手动输入时,它可以正常工作,但是在提交时出现错误。

问题提示: 编写一个程序,其中包含名称及其对应的电话号码的字典。

反复要求用户输入名称。然后,根据输入的内容执行以下三项操作之一:

如果他们什么都不输入,请退出程序。 如果他们输入的名称在您的词典中作为键存在,则只需打印相应的电话号码即可。 如果他们输入不在词典中的名称作为键,请询问用户电话号码,然后将名称和电话号码放入词典中。 打印出最终的字典。

我的代码:

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'}

2 个答案:

答案 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():