Практическое задание №3: Память и подтверждение действий: README.md
This commit is contained in:
+85
-72
@@ -1,109 +1,122 @@
|
|||||||
# Практическое задание №3
|
# Практическое задание №3: Память и подтверждение действий
|
||||||
**Тема:** Память и подтверждение действий
|
|
||||||
|
|
||||||
---
|
## Описание
|
||||||
|
В этом проекте реализована простая консольная программа, демонстрирующая работу с памятью и подтверждением пользовательских действий. Программа использует библиотеку **rich** для красивого вывода текста в терминале.
|
||||||
|
|
||||||
## Описание проекта
|
Основные возможности:
|
||||||
|
- Запоминание введённых пользователем данных.
|
||||||
В этом проекте реализованы два простых скрипта, демонстрирующих работу с памятью (сохранением данных в файл) и механизмом подтверждения пользовательских действий.
|
- Подтверждение выполнения действия (например, удаление записи).
|
||||||
- **`memory.py`** – сохраняет введённые пользователем данные в JSON‑файл и умеет их загружать обратно.
|
- Интерактивный интерфейс с подсказками и цветным выводом.
|
||||||
- **`confirm_action.py`** – запрашивает у пользователя подтверждение перед выполнением опасной операции (например, удаление файла).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Установка зависимостей
|
## Установка зависимостей
|
||||||
|
|
||||||
Проект использует только стандартную библиотеку Python 3.x, поэтому дополнительных пакетов не требуется.
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Если вы используете виртуальное окружение:
|
# Создайте виртуальное окружение (необязательно)
|
||||||
python -m venv .venv
|
python -m venv .venv
|
||||||
source .venv/bin/activate # Windows: .venv\Scripts\activate
|
source .venv/bin/activate # Windows: .venv\Scripts\activate
|
||||||
|
|
||||||
# Установить зависимости (если они появятся в будущем)
|
# Установите зависимости из requirements.txt
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
`requirements.txt` содержит только одну строку:
|
||||||
|
|
||||||
## Запуск файлов
|
```text
|
||||||
|
rich>=13.0.0
|
||||||
|
```
|
||||||
|
|
||||||
### 1. `memory.py`
|
## Запуск программы
|
||||||
Скрипт демонстрирует сохранение и загрузку данных.
|
|
||||||
|
В проекте есть два скрипта, которые можно запускать отдельно.
|
||||||
|
|
||||||
|
### 1. `memory_confirm.py`
|
||||||
|
Главный файл приложения.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python memory.py
|
python memory_confirm.py
|
||||||
```
|
```
|
||||||
|
|
||||||
Пример работы:
|
После запуска вы увидите меню:
|
||||||
|
|
||||||
```
|
```
|
||||||
Введите имя: Иван
|
[bold cyan]=== Меню ===[/]
|
||||||
Введите возраст: 30
|
1. Добавить запись
|
||||||
Данные успешно сохранены в data.json.
|
2. Показать все записи
|
||||||
Загружаем данные...
|
3. Удалить запись
|
||||||
Имя: Иван, Возраст: 30
|
4. Выход
|
||||||
|
Введите номер действия:
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. `confirm_action.py`
|
Выберите нужный пункт, следуйте подсказкам.
|
||||||
Скрипт запрашивает подтверждение перед удалением файла.
|
|
||||||
|
### 2. `demo.py`
|
||||||
|
Пример использования функций из проекта (можно использовать как модуль).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python confirm_action.py path/to/file.txt
|
python demo.py
|
||||||
```
|
```
|
||||||
|
|
||||||
Пример работы:
|
Он демонстрирует добавление и удаление записей без интерактивного меню.
|
||||||
|
|
||||||
|
## Пример использования
|
||||||
|
|
||||||
|
```text
|
||||||
|
$ python memory_confirm.py
|
||||||
|
|
||||||
|
[bold cyan]=== Меню ===[/]
|
||||||
|
1. Добавить запись
|
||||||
|
2. Показать все записи
|
||||||
|
3. Удалить запись
|
||||||
|
4. Выход
|
||||||
|
Введите номер действия: 1
|
||||||
|
|
||||||
|
Введите текст для сохранения: Hello, world!
|
||||||
|
[green]Запись успешно добавлена![/]
|
||||||
|
|
||||||
|
[bold cyan]=== Меню ===[/]
|
||||||
|
1. Добавить запись
|
||||||
|
2. Показать все записи
|
||||||
|
3. Удалить запись
|
||||||
|
4. Выход
|
||||||
|
Введите номер действия: 2
|
||||||
|
|
||||||
|
[bold magenta]Список записей:[/]
|
||||||
|
0: Hello, world!
|
||||||
|
|
||||||
|
[bold cyan]=== Меню ===[/]
|
||||||
|
1. Добавить запись
|
||||||
|
2. Показать все записи
|
||||||
|
3. Удалить запись
|
||||||
|
4. Выход
|
||||||
|
Введите номер действия: 3
|
||||||
|
|
||||||
|
Выберите индекс записи для удаления (0):
|
||||||
|
Подтвердите удаление (y/n): y
|
||||||
|
[red]Запись удалена.[/]
|
||||||
|
|
||||||
|
[bold cyan]=== Меню ===[/]
|
||||||
|
1. Добавить запись
|
||||||
|
2. Показать все записи
|
||||||
|
3. Удалить запись
|
||||||
|
4. Выход
|
||||||
|
Введите номер действия: 4
|
||||||
|
|
||||||
|
До свидания!
|
||||||
```
|
```
|
||||||
Вы уверены, что хотите удалить файл 'file.txt'? (y/n): n
|
|
||||||
Операция отменена.
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Пример использования в коде
|
|
||||||
|
|
||||||
```python
|
|
||||||
# memory_example.py
|
|
||||||
from memory import MemoryHandler
|
|
||||||
|
|
||||||
handler = MemoryHandler('data.json')
|
|
||||||
handler.save({'name': 'Алексей', 'age': 25})
|
|
||||||
print(handler.load())
|
|
||||||
```
|
|
||||||
|
|
||||||
```python
|
|
||||||
# confirm_example.py
|
|
||||||
import sys
|
|
||||||
from confirm_action import confirm_and_execute
|
|
||||||
|
|
||||||
if len(sys.argv) != 2:
|
|
||||||
print("Usage: python confirm_example.py <file_path>")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
file_path = sys.argv[1]
|
|
||||||
confirm_and_execute(file_path, lambda p: os.remove(p))
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Структура проекта
|
## Структура проекта
|
||||||
|
|
||||||
```
|
- `memory_confirm.py` – основной скрипт с интерактивным меню.
|
||||||
project/
|
- `demo.py` – демонстрационный скрипт, показывающий работу функций без пользовательского ввода.
|
||||||
├── memory.py
|
- `requirements.txt` – список зависимостей.
|
||||||
├── confirm_action.py
|
|
||||||
├── data.json # создаётся при первом запуске memory.py
|
|
||||||
└── README.md
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Автор
|
**Примечание:**
|
||||||
|
Если вы используете Windows PowerShell, замените команду запуска на:
|
||||||
|
|
||||||
- **Имя Фамилия** – разработчик
|
```powershell
|
||||||
- Контакт: email@example.com
|
python .\memory_confirm.py
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
*Если возникнут вопросы, обращайтесь в Issues.*
|
|
||||||
Reference in New Issue
Block a user