[英]How to print correct value for chosen key value in dictionary? (Python)
我正在用不同的人的生日制作一本字典(用戶通過輸入來填寫)。 現在,我還希望用戶能夠使用他/她剛剛添加的名稱之一進行書寫,然后得到該人的生日。 問題在於,無論用戶寫了哪個名字,它總是返回添加到列表中的最后一個日期。所以說用戶已將這些元素放在:{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行中可能有問題。 所有幫助表示贊賞! :)
首先,在您添加的代碼中,我看不到將值添加到字典的部分。 之后,您可以通過以下方式進行搜索:
if find in birthdays:
date = birthdays.get(find)
print(" %s 's birthday is at %s" % (find, date))
這是你想要的嗎? 但我認為這還不完整
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)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.