Привет! Я хочу поделиться с тобой своим опытом создания консольного приложения на языке Python для работы с заметками. Это приложение позволяет сохранять, читать, добавлять, редактировать и удалять заметки. Каждая заметка содержит идентификатор, заголовок, тело заметки и информацию о дате и времени создания или последнего изменения.Для начала, нам понадобится использовать классы в Python для создания структуры наших заметок. Создадим класс Note со следующими атрибутами⁚ id, title, body, created, modified.
python
import json
class Note⁚
def __init__(self, id, title, body)⁚
self.id id
self.title title
self.body body
self.created None
self.modified None
Мы добавили аргументы id, title и body в методе __init__. Значение created и modified изначально устанавливаем в None.Теперь давайте создадим класс Notebook, который будет отвечать за хранение и управление заметками. У нас будут методы для сохранения, чтения, добавления, редактирования и удаления заметок.python
class Notebook⁚
def __init__(self)⁚
self.notes []
def save_notes(self, filename)⁚
data []
for note in self.notes⁚
note_data {
‘id’⁚ note.id,
‘title’⁚ note.title,
‘body’⁚ note.body,
‘created’⁚ str(note.created) if note.created else None,
‘modified’⁚ str(note.modified) if note.modified else None
}
data.append(note_data)
with open(filename, ‘w’) as file⁚
json.dump(data, file)
def load_notes(self, filename)⁚
with open(filename, ‘r’) as file⁚
data json.load(file)
for note_data in data⁚
note Note(note_data[‘id’], note_data[‘title’], note_data[‘body’])
note.created note_data[‘created’]
note.modified note_data[‘modified’]
self.notes.append(note)
def add_note(self, title, body)⁚
note Note(len(self.notes) 1, title, body)
note.created datetime.now
self.notes.append(note)
def edit_note(self, id, title, body)⁚
for note in self.notes⁚
if note.id id⁚
note.title title
note.body body
note.modified datetime.now
break
def delete_note(self, id)⁚
for note in self.notes⁚
if note.id id⁚
self.notes.remove(note)
break
В методе save_notes мы превращаем каждую заметку в словарь и добавляем словарь в список data. Затем мы используем функцию json.dump для сохранения списка data в файл. Метод load_notes загружает данные из файла JSON, преобразует каждую заметку в объект класса Note и добавляет их в список notes. Метод add_note создает новый объект Note, присваивает ему id, заголовок, содержимое, а также устанавливает дату создания. Затем новая заметка добавляется в список notes. Метод edit_note позволяет изменить заголовок или содержимое заметки по ее id. Мы ищем заметку с заданным id в списке notes и обновляем соответствующие атрибуты. Метод delete_note удаляет заметку с заданным id из списка notes.
Когда наши классы готовы, мы можем создать экземпляр класса Notebook и использовать его методы для работы с заметками. Вот пример использования⁚
python
notebook Notebook
notebook.add_note(″Заголовок заметки″, ″Текст заметки″)
notebook.save_notes(″notes.json″) # сохраняем заметки в файл
notebook.load_notes(″notes.json″) # загружаем заметки из файла
notebook.edit_note(1, ″Новый заголовок″, ″Новый текст″)
notebook.delete_note(2)
for note in notebook.notes⁚
print(f″ID⁚ {note.id}″)
print(f″Заголовок⁚ {note.title}″)
print(f″Содержимое⁚ {note.body}″)
print(f″Дата создания⁚ {note.created}″)
print(f″Дата изменения⁚ {note.modified}″)
В этом примере мы создаем заметку с заголовком ″Заголовок заметки″ и содержимым ″Текст заметки″, сохраняем ее в файл, загружаем заметки из файла, редактируем заметку с id 1, удаляем заметку с id 2 и выводим информацию о каждой заметке.
Мы использовали функцию print для вывода данных о заметке на экран.
Надеюсь, мой опыт будет полезен для тебя!