我正在用不同的人的生日制作一本字典(用户通过输入来填写)。现在,我还希望用户能够使用他/她刚刚添加的名称之一进行书写,然后得到该人的生日。问题在于,无论用户写了哪个名字,它总是返回添加到列表中的最后一个日期。所以说用户已将这些元素放在:{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行中可能有问题。所有帮助表示赞赏! :)
答案 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)))