Простой телефонный справочник на Python

Автор Itworkroom

Создание телефонного справочника на Python — это отличный способ практиковаться в работе с файлами, списками, словарями и функциями. В этом примере мы создадим простую программу, которая позволяет добавлять, удалять, редактировать и искать контакты в телефонном справочнике. Данные будут сохраняться в текстовом файле.


Код Программы “Телефонный Справочник”

# Телефонный справочник

# Импортируем необходимые модули
import os
import json

# Путь к файлу, где будут храниться контакты
FILE_PATH = "phonebook.json"

# Загрузка данных из файла
def load_phonebook():
    if os.path.exists(FILE_PATH):
        with open(FILE_PATH, "r", encoding="utf-8") as file:
            return json.load(file)
    return {}

# Сохранение данных в файл
def save_phonebook(phonebook):
    with open(FILE_PATH, "w", encoding="utf-8") as file:
        json.dump(phonebook, file, ensure_ascii=False, indent=4)

# Отображение всех контактов
def show_contacts(phonebook):
    if not phonebook:
        print("Справочник пуст.")
    else:
        print("Телефонный справочник:")
        for name, number in phonebook.items():
            print(f"{name}: {number}")

# Добавление нового контакта
def add_contact(phonebook):
    name = input("Введите имя: ")
    number = input("Введите номер телефона: ")
    phonebook[name] = number
    save_phonebook(phonebook)
    print(f"Контакт {name} добавлен.")

# Удаление контакта
def delete_contact(phonebook):
    name = input("Введите имя контакта для удаления: ")
    if name in phonebook:
        del phonebook[name]
        save_phonebook(phonebook)
        print(f"Контакт {name} удалён.")
    else:
        print("Контакт не найден.")

# Редактирование контакта
def edit_contact(phonebook):
    name = input("Введите имя контакта для редактирования: ")
    if name in phonebook:
        new_number = input("Введите новый номер телефона: ")
        phonebook[name] = new_number
        save_phonebook(phonebook)
        print(f"Контакт {name} обновлён.")
    else:
        print("Контакт не найден.")

# Поиск контакта
def find_contact(phonebook):
    name = input("Введите имя для поиска: ")
    if name in phonebook:
        print(f"Номер телефона: {phonebook[name]}")
    else:
        print("Контакт не найден.")

# Основная функция программы
def main():
    phonebook = load_phonebook()

    while True:
        print("\nТелефонный справочник")
        print("1. Показать все контакты")
        print("2. Добавить контакт")
        print("3. Удалить контакт")
        print("4. Редактировать контакт")
        print("5. Найти контакт")
        print("6. Выйти")

        choice = input("Выберите действие: ")

        if choice == "1":
            show_contacts(phonebook)
        elif choice == "2":
            add_contact(phonebook)
        elif choice == "3":
            delete_contact(phonebook)
        elif choice == "4":
            edit_contact(phonebook)
        elif choice == "5":
            find_contact(phonebook)
        elif choice == "6":
            print("До свидания!")
            break
        else:
            print("Неверный выбор. Попробуйте снова.")

# Запуск программы
if __name__ == "__main__":
    main()


Объяснение Кода

  1. Загрузка и сохранение данных:
    • Данные справочника хранятся в файле phonebook.json в формате JSON.
    • Функции load_phonebook() и save_phonebook() используются для загрузки и сохранения данных.
  2. Основные функции:
    • show_contacts(phonebook): Отображает все контакты из справочника.
    • add_contact(phonebook): Добавляет новый контакт в справочник.
    • delete_contact(phonebook): Удаляет контакт по имени.
    • edit_contact(phonebook): Редактирует номер телефона для существующего контакта.
    • find_contact(phonebook): Ищет контакт по имени и выводит его номер телефона.
  3. Интерфейс:
    • Программа предлагает пользователю выбрать действие через текстовое меню.
    • В зависимости от выбора выполняется соответствующая функция.
  4. Формат данных:
    • Справочник хранится в виде словаря, где ключ — имя контакта, а значение — номер телефона.

Пример Работы Программы

  1. Создание контакта:
    Выберите действие: 2
    Введите имя: Иван
    Введите номер телефона: 123-45-67
    Контакт Иван добавлен.
  2. Поиск контакта:
    Выберите действие: 5
    Введите имя для поиска: Иван
    Номер телефона: 123-45-67
  3. Редактирование контакта:
    Выберите действие: 4
    Введите имя контакта для редактирования: Иван
    Введите новый номер телефона: 987-65-43
    Контакт Иван обновлён.
  4. Удаление контакта:
    Выберите действие: 3
    Введите имя контакта для удаления: Иван
    Контакт Иван удалён.

Эта программа — простой телефонный справочник на Python. Она позволяет добавлять, удалять, редактировать и искать контакты, а также сохраняет данные в файл для дальнейшего использования. Вы можете расширить её функциональность, добавив, например, проверку корректности номеров телефонов или поддержку нескольких номеров для одного контакта.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *