Как напечатать правильное значение для выбранного значения ключа в словаре?(Python) - PullRequest
0 голосов
/ 21 сентября 2018

Я делаю словарь с днями рождения разных людей (который пользователь вводит через ввод).Теперь я также хочу, чтобы пользователь мог написать под одним из только что добавленных им имен, а затем получить взамен день рождения этого человека.Проблема в том, что он всегда возвращает последнюю дату, добавленную в список, независимо от того, какое имя написал пользователь. Так что пользователь добавил эти элементы в: {anna: 1.october, paul: 3.january}.Если я затем хочу, чтобы программа напечатала день рождения Анны, вместо этого она печатает «день рождения Анны в 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 голосов
/ 21 сентября 2018

Во-первых, в коде, который вы добавили, я не вижу той части, в которую вы добавляете значения в словарь.После этого вы можете искать по:

if find in birthdays:
    date = birthdays.get(find)
    print(" %s 's birthday is at %s" % (find, date))
0 голосов
/ 21 сентября 2018

Это ты хочешь?Но я думаю, что это не полный

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)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...