Здравствуйте! Меня зовут Иван, и сегодня я хотел бы рассказать вам о том, как написать программу телефонного справочника на языке Python с использованием функций․ Я самопроизвольно создал такую программу, и она оказалась очень полезной и удобной в использовании․Сначала давайте определимся с функционалом программы․ Наша программа должна иметь следующие возможности⁚
1․ Возможность импортировать и экспортировать данные Фамилия, имя, отчество, номер телефона в формате ․txt․
3․ Сохранение данных в текстовом файле․
4․ Поиск определенной записи по введенной характеристике, например по имени или фамилии․
5․ Изменение и удаление данных․
Теперь перейдем к созданию программы․ Для начала, нам понадобится файл с данными․ Я создал файл ″contacts․txt″, в котором каждая строка представляет собой отдельную запись в формате ″Фамилия, имя, отчество, номер телефона″․1․ Чтение данных из файла и вывод на экран⁚
python
def display_contacts⁚
with open(″contacts․txt″, ″r″) as file⁚
contacts file․readlines
for contact in contacts⁚
print(contact․strip)
Эта функция открывает файл ″contacts․txt″ в режиме чтения и читает каждую строку файла․ Затем она выводит каждую запись на экран, удаляя символы новой строки с помощью метода strip․2․ Сохранение данных в файл⁚
python
def save_contacts(contact)⁚
with open(″contacts․txt″, ″a″) as file⁚
file․write(contact ″\n″)
Функция save_contacts принимает аргумент contact, который представляет собой строку с данными о контакте․ Она открывает файл ″contacts․txt″ в режиме добавления и записывает в него переданную строку․ Затем добавляет символ новой строки с помощью ″\n″․3․ Поиск записи по характеристике⁚
python
def search_contacts(attribute, value)⁚
found_contacts []
with open(″contacts․txt″, ″r″) as file⁚
contacts file․readlines
for contact in contacts⁚
if value․lower in contact․lower․split(″,″)⁚
found_contacts․append(contact․strip)
if len(found_contacts) > 0⁚
print(″Найденные контакты⁚″)
for found_contact in found_contacts⁚
print(found_contact)
else⁚
print(″Контакты не найдены․″)
Функция search_contacts принимает два аргумента⁚ attribute и value․ Она открывает файл ″contacts․txt″ в режиме чтения и читает каждую строку файла․ Затем она проверяет, содержит ли одна из характеристик (фамилия, имя, отчество, номер телефона) введенное значение value, используя метод split для разделения строки на отдельные значения․ Если значение найдено, оно добавляется в список found_contacts․ Затем функция проверяет, есть ли найденные контакты, и выводит их на экран, или сообщает, что контакты не найдены․
4․ Изменение и удаление данных⁚
python
def modify_or_delete_contacts⁚
with open(″contacts․txt″, ″r″) as file⁚
contacts file․readlines
print(″Список контактов⁚″)
for i, contact in enumerate(contacts)⁚
print(f″{i}․ {contact․strip}″)
index int(input(″Введите номер контакта для изменения или удаления⁚ ″))
if 0 < index < len(contacts)⁚
action input(″Что вы хотите сделать (изменить/удалить): ″)
if action․lower ″изменить″⁚
new_contact input(″Введите новые данные для контакта⁚ ″)
contacts[index] new_contact ″\n″
with open(″contacts․txt″, ″w″) as file⁚
file․writelines(contacts)
print(″Контакт успешно изменен․″)
elif action․lower ″удалить″⁚
del contacts[index]
with open(″contacts․txt″, ″w″) as file⁚
file․writelines(contacts)
print(″Контакт успешно удален․″)
else⁚
print(″Неверный номер контакта․″)
Функция modify_or_delete_contacts открывает файл ″contacts․txt″ в режиме чтения и читает каждую строку файла․ Затем она выводит список контактов на экран и запрашивает у пользователя номер контакта для изменения или удаления․ Если номер введен корректно, функция предлагает пользователю выбрать действие (изменить или удалить)․ Если выбрано изменение, функция запрашивает новые данные для контакта, затем изменяет его в списке contacts и записывает обновленные данные обратно в файл․ Если выбрано удаление, функция удаляет контакт из списка contacts и записывает обновленные данные в файл․
Теперь, когда у нас есть все необходимые функции, мы можем создать главную программу, которая будет вызывать эти функции в соответствии с выбором пользователя․python
while True⁚
print(″Телефонный справочник″)
print(″--------------------″)
print(″1․ Вывести все контакты″)
print(″2․ Добавить контакт″)
print(″3․ Поиск контакта″)
print(″4․ Изменить или удалить контакт″)
print(″5․ Выйти″)