11. Мини-проект: заметки на Python
Зачем нужен мини-проект
Теория — это хорошо, но без практики знания быстро забываются. В этом уроке вы создадите реальное приложение для заметок, используя всё, что изучили: переменные, функции, списки, файлы и работу с JSON.Создание небольших проектов — лучший способ научиться программировать. Даже простая программа тренирует мышление разработчика!
Описание проекта
Мы сделаем консольное приложение «Заметки». Оно позволит:- добавлять новые заметки;
- просматривать список всех заметок;
- удалять ненужные;
- сохранять их в файл, чтобы не терялись при перезапуске.
Структура проекта
В папке проекта создайте файл notes.py — в нём будет весь код. Также создайте файл notes.json, в котором будут храниться данные.Начало кода: импорт модулей
import json
import os
Модуль json нужен для сохранения заметок в файл, а os — чтобы проверять, существует ли файл.Создаём функции
Разобьём логику программы на функции — так код будет аккуратным и удобным для чтения.Функция загрузки заметок
def load_notes():
if os.path.exists('notes.json'):
with open('notes.json', 'r', encoding='utf-8') as f:
return json.load(f)
return []
Эта функция проверяет, существует ли файл. Если да — загружает данные, если нет — возвращает пустой список.Функция сохранения заметок
def save_notes(notes):
with open('notes.json', 'w', encoding='utf-8') as f:
json.dump(notes, f, ensure_ascii=False, indent=2)
Она принимает список заметок и сохраняет его в формате JSON.Добавление новой заметки
def add_note(notes):
text = input('Введите текст заметки: ')
notes.append(text)
save_notes(notes)
print('Заметка добавлена!')
Просмотр заметок
def show_notes(notes):
if not notes:
print('Список заметок пуст.')
else:
print('
Ваши заметки:')
for i, note in enumerate(notes, start=1):
print(f'{i}. {note}')
Удаление заметки
def delete_note(notes):
show_notes(notes)
if not notes:
return
num = int(input('Введите номер заметки для удаления: '))
if 1 <= num <= len(notes):
deleted = notes.pop(num - 1)
save_notes(notes)
print(f'Удалена заметка: {deleted}')
else:
print('Некорректный номер!')
Главное меню программы
Теперь создадим бесконечный цикл, который будет показывать меню пользователю.
def main():
notes = load_notes()
while True:
print('
Меню:')
print('1. Показать все заметки')
print('2. Добавить заметку')
print('3. Удалить заметку')
print('4. Выйти')
choice = input('Выберите действие: ')
if choice == '1':
show_notes(notes)
elif choice == '2':
add_note(notes)
elif choice == '3':
delete_note(notes)
elif choice == '4':
print('До свидания!')
break
else:
print('Неверный выбор, попробуйте снова.')if __name__ == '__main__':
main()
Результат
Пример работы программы:
Меню:
1. Показать все заметки
2. Добавить заметку
3. Удалить заметку
4. ВыйтиВыберите действие: 2
Введите текст заметки: Купить хлеб
Заметка добавлена!
Как улучшить проект
Вы можете добавить больше функциональности:- Возможность поиска заметок по ключевому слову.
- Дата и время создания каждой заметки.
- Редактирование существующих заметок.
- Сортировка по дате.
Дополнительные идеи мини-проектов
Когда вы разберётесь с этим примером, попробуйте сделать ещё несколько небольших проектов:- Калькулятор с функциями add, subtract, multiply, divide.
- Планировщик дел с датами и отметкой «выполнено».
- Программа «Список книг», где можно добавлять, искать и удалять книги.
Итоги урока
Теперь вы умеете:- Работать с файлами JSON для хранения данных.
- Создавать функции и передавать в них параметры.
- Разделять логику на отдельные блоки (функции).
- Проектировать простые приложения с меню и пользовательским вводом.
Поздравляем! Вы создали свой первый полноценный Python-проект. Далее вы можете развивать его, добавляя графический интерфейс (например, с помощью Tkinter) или превращая в веб-приложение с Flask!