Давайте разберем решение вашей задачи по добавлению и изменению контактов в телефонной книге, пошагово объясняя, как это можно реализовать.
Шаг 1: Определение структуры данных
Мы уже имеем телефонную книгу в виде словаря book_phones, который хранит пары "имя : телефон".
Шаг 2: Получение данных от пользователя
Сначала нужно получить от пользователя данные — имя и номер телефона. Давайте предположим, что этот ввод происходит в виде строки с двумя значениями, разделенными пробелом.
Шаг 3: Логика добавления и изменения контактов
Если телефон и имя введены, проверяем, есть ли такой контакт уже в телефонной книге:
- Если есть, обновляем номер телефона.
- Если нет, добавляем новый контакт.
Если введено только имя, но не телефон, выводим номер телефона текущего контакта.
Если имя не введено, выводим сообщение "Нет в телефонной книге".
Шаг 4: Вывод обновленной телефонной книги
Если телефонная книга была изменена, выводим обновленную версию. Используем цикл, чтобы вывести все контакты в нужном формате.
Вот пример кода, который выполняет описанные функции:
book_phones = {
'Квам-Дамн': '-79899899889',
'Лук Скамворкер': '112',
'Петард Вейпер': '1',
'Лия Моргала': '+09998765432',
'Эдуард Скамворкер': '0'
}
# Функция для обновления телефонной книги
def update_phone_book(input_data):
if not input_data.strip():
print("Нет в телефонной книге")
return
# Разбиваем входные данные на имя и номер телефона
parts = input_data.split()
if len(parts) == 0:
print("Нет в телефонной книге")
return
name = parts[0]
phone = parts[1] if len(parts) > 1 else None
if phone: # Если был введен номер телефона
if name in book_phones:
# Изменяем существующий контакт
book_phones[name] = phone
print(f"Контакт {name} обновлён.")
else:
# Добавляем новый контакт
book_phones[name] = phone
print(f"Контакт {name} добавлен.")
else: # Если номер телефона не был введён
if name in book_phones:
print(f'Номер телефона для {name}: {book_phones[name]}')
else:
print("Нет в телефонной книге")
# Выводим обновленную телефонную книгу
print("Обновленная телефонная книга:")
for key in book_phones:
print(f'{key}: {book_phones[key]}')
# Пример использования функции
update_phone_book('Лук Скамворкер 12345') # Изменяем номер для Лук Скамворкер
update_phone_book('Стив'); # Запрашиваем номер для несуществующего контакта
update_phone_book('Квам-Дамн'); # Запрашиваем номер для существующего контакта без ввода номера
Объяснение работы кода:
- Структура данных: В начале мы определяем телефонную книгу как словарь.
- Функция
update_phone_book: Обрабатывает ввод пользователя, проверяет наличие имени и номера.
- Вывод результатов: Если изменения произошли, выводим обновленную книгу в формате "имя: телефон".
Таким образом, данный код охватывает логику добавления и изменения контактов в телефонной книге и выводит соответствующие результаты.