如何打印字典中所选键值的正确值?(Python)

如何打印字典中所选键值的正确值?(Python),python,dictionary,input,key-value,Python,Dictionary,Input,Key Value,我正在用不同的人的生日制作一本字典(用户通过输入填写)。现在,我还希望用户能够在他/她刚刚添加的名字中写上一个,然后得到那个人的生日作为回报。问题是它总是返回添加到列表中的最后一个日期,而不管用户写的是哪个名称。如果我想让程序打印安娜的生日,它会打印“安娜的生日是1月3日”。这就是我的代码的样子(顺便说一句,它大致翻译成英语,所以不要介意潜在的语言错误): 我觉得在最后4行中可能有问题。感谢所有帮助!:) 这是你想要的吗?但我认为这是不完整的 birthdays={} name= "" date

我正在用不同的人的生日制作一本字典(用户通过输入填写)。现在,我还希望用户能够在他/她刚刚添加的名字中写上一个,然后得到那个人的生日作为回报。问题是它总是返回添加到列表中的最后一个日期,而不管用户写的是哪个名称。如果我想让程序打印安娜的生日,它会打印“安娜的生日是1月3日”。这就是我的代码的样子(顺便说一句,它大致翻译成英语,所以不要介意潜在的语言错误):


我觉得在最后4行中可能有问题。感谢所有帮助!:)

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

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)))

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

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)))

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

if find in birthdays:
    date = birthdays.get(find)
    print(" %s 's birthday is at %s" % (find, date))

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

if find in birthdays:
    date = birthdays.get(find)
    print(" %s 's birthday is at %s" % (find, date))

哦,我的一行代码好像丢了!中间应该有一条线,上面写着“生日。更新({Nord:Dedate }))。无论如何,谢谢!它工作了:哦,看来我的代码行丢了!中间应该有一行,上面写着“生日。更新({No:Dedate })”。无论如何,谢谢!成功了:)谢谢!我把我的最后几句话换成了你的最后几句,这句话和上面的答案一样有效:)谢谢!我把我的最后几句话换成了你的最后几句话,这和上面的答案一样有效:)