如何在字典中为所选键值打印正确的值? (蟒蛇)

时间:2018-09-21 12:23:05

标签: python dictionary input key-value

我正在用不同的人的生日制作一本字典(用户通过输入来填写)。现在,我还希望用户能够使用他/她刚刚添加的名称之一进行书写,然后得到该人的生日。问题在于,无论用户写了哪个名字,它总是返回添加到列表中的最后一个日期。所以说用户已将这些元素放在:{anna:1.october,paul:3.january}中。如果然后我希望该程序打印安娜的生日,则打印“安娜的生日是1月3日”。这是我的代码的样子(顺便说一句,它大致翻译成英文,所以不要介意潜在的语言错误):

birthdays={}
name= ""
date= ""

while True:
    name= input("Who's birthday would you like to add?:")
    if name.strip() == "done":
        break
    date= input("When is the person's birthday?:")

find= input("\n Type in a name that you've added!:")
for name in birthdays:
    if find == name in birthdays or date in birthdays:
        print(" %s 's birthday is at %s" % (name, date))

我觉得最后4行中可能有问题。所有帮助表示赞赏! :)

2 个答案:

答案 0 :(得分:3)

首先,在您添加的代码中,我看不到将值添加到字典的部分。 之后,您可以通过以下方式进行搜索:

4

答案 1 :(得分:1)

这是你想要的吗?但我认为这还不完整

birthdays={}
name= ""
date= ""

while True:
    name = input("Who's birthday would you like to add?:")
    if name.strip() == "done":
        break
    date = input("When is the person's birthday?:")
    birthdays[name] = date

find = input("\n Type in a name that you've added!:")
if find in birthdays:
    print(" {} 's birthday is at {}" .format(find, birthdays.get(find)))