簡體   English   中英

如何在字典中為所選鍵值打印正確的值? (蟒蛇)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM