PythonNotebook
Implementing simple notebook operations in Python
Install / Use
/learn @KIRIN17/PythonNotebookREADME
В данной лабораторной работе реализован простой телефонный справочник.
Телефонным справочником является файл, хранящийся на жестком диске, который содержит информацию, соотносящую идентификатор человека (например, имя) с некоторыми данными о нем: номер телефона, дата рождения и т.д.
Необходимо разработать программу, которая будет предоставлять консольный интерфейс для работы с этим файлом.
Каждая запись в справочнике должна обладать следующими полями:
- Имя (только латинские буквы, цифры и пробелы, первая буква — заглавная)
- Фамилия (только латинские буквы, цифры и пробелы, первая буква — заглавная)
МВ: Пара (Имя, Фамилия) является уникальным идентификатором записи в справочнике.
-
Номер телефона (состоит из 11 цифр без знака +) МВ: При заполнении обязательна проверка на корректность номера и автозамена «+7» в начале номера на «8».
-
Дата рождения (полная —число, месяц и год). Поле является опциональным, т. его заполнение не обязательно, оно может оставаться пустым. МВ: При заполнении обязательна проверка на корректность даты.
................................................................................
Консольный интерфейс:
-
Поднонсольным интерфейсом понимается следующее: в интерпретаторе/командной строне/терминале запускается на выполнение программа (скрипт), которая предлагает пользователю конечный набор команд для работы со справочником.
-
При вводе определенной команды (например, «добавить новую запись») программа выполняет соответствующие действия, необходимые для реализации этой команды.
-
После выполнения введенной номанды программа снова предлагает пользователю выбрать командуи ожидает ввода.
-
Программа должна заканчивать свое выполнение только после ввода специальной команды (например, «ий».
Требования к программе:
-
При запуске программы (скрипта), она должна считывать содержимое: телефонного справочника из файла, хранящего на жестком диске. Файл может как ‘содержать записи (в корректном виде), таки быть пустым.
-
При завершении работы программы и/или при завершении выполнении команды, изменяющей справочник, все изменения в справочнике должны быть сохранены в файл (тот, из которого справочник считывается в начале).
-
Минимальный набор поддерживаемых команд для работы со справочником:
-
Просмотр всех записей справочника: вывод всего справочника так, чтобы было читабельно.
-
Поиск по справочнику. Поиск может осуществляться по любому из полей, а также по нескольким полям одновременно (например, найти запись с именем «А» и фамилией «Б»). В результате поиска должны быть выведены найденные записи со. значением полей.
-
Добавление новой записи. МВ: Обязательна проверка на то, что такая запись не содержится в справочнике (по уникальному идентификатору). Если такая запись уже содержится в справочнике, сообщить об этом пользователю и предложить: изменить существующую запись, изменить (Имя, Фамилия) новой записи или вернуться квыбору команды. МВ: При вводе Имени и Фамилии обязательна автозамена первой буквы на заглавную.
-
Удаление записи из справочника по Имени и Фамилии
-
Изменение любого поля в определенной записи справочника
-
Вывод возраста человека (записи) по Имени и Фамилии
-
Если пользователь неправильно ввел команду, программа должна проинформировать его о некорректном вводе и вернуться в состояние ожидания ввода команды.
-
Ни одна операция не заканчивается ошибкой или вылетом программы при поступлении любых входных данных — либо операция должна быть корректно обработана, либо должно быть выведено сообщение об ошибке (желательно информативное), и программа возвращена в состояние ожидания ввода.
Related Skills
node-connect
351.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
351.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
351.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
