Здравствуйте, дайте мне пожалуйста толчка)

Максим Грушин

Пользователь
Пользователь
Апр 10, 2020
63
8
8
19
Тюмень
Здравствуйте еще раз. Я хотел у вас попросить помощи. Кто знает как сделать заметки в python, без интерфейса, просто заметки с функциями Добавление заметок, удаление заметок,Просмотр заметок, Создание самой Заметки(Типа блокнота, куда будет вводиться все остальные заметки) И я хотел бы просто узнать, можно с примером заметок, а можно отдельно, как сделать чтобы например пользователь Создает блокнот, блокнот куда то сохраняется и потом можно было типа им пользоваться, это для того чтобы каждый раз не надо было создавать блокнот и можно было редактировать этот блокнот
Вот вам мини задачка) Просто я что то накидал, но хотелось бы у других узнать как они сделают, может что-нибудь да кусочек себе заберу) если конечно вы не против
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Вот пример заметок в консоли:
Python:
import pickle
import sys


class Todo:

    data = {}

    def __init__(self):
        try:
            self.load()
        except:
            pass

    def save(self):
        with open('todo.pickle', 'wb') as f:
            pickle.dump(self.data, f)
        sys.exit()

    def load(self):
        with open('todo.pickle', 'rb') as f:
            self.data = pickle.load(f)

    def get_all(self):
        print()
        print('Список заметок:')
        print('---------------')
        if self.data.items():
            for k, v in self.data.items():
                print(' ' + k + '. ' + v)
        else:
            print(' Пока нет заметок')
        print()

    def update(self, num, text):
        self.data[num] = text
        self.get_all()

    def delete(self, num):
        if self.data.get(num):
            del(self.data[num])
        self.get_all()


todo = Todo()

actions = {
    '1': lambda: todo.get_all(),
    '2': lambda: todo.update(input('Введите номер заметки: '),
                             input('Введите текст заметки: ')),
    '3': lambda: todo.delete(input('Введите номер заметки: ')),
    '4': lambda: todo.save(),
    '5': lambda: sys.exit()
}

print()
print('Программа "Заметки"')
print('-------------------')
todo.get_all()

while True:
    print()
    print('Выберите действие:')
    print('------------------')
    print('1 - Показать заметки')
    print('2 - Добавить или изменить заметку')
    print('3 - Удалить заметку')
    print('4 - Сохранить и выйти')
    print('5 - Выйти без сохранения')
    print()
    x = input()
    if actions.get(x):
        actions[x]()
    else:
        print('Нет такого действия')
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
А что нужно объяснить?
Логика работы: данные сохраняются и загружаются при помощи pickle, класс Todo - это простая CRUD-обертка над данными, действия лежат в словаре actions, выбираются при помощи input`a из консоли.
 
  • Мне нравится
Реакции: Student

Максим Грушин

Пользователь
Пользователь
Апр 10, 2020
63
8
8
19
Тюмень
Вот пример заметок в консоли:
Python:
import pickle
import sys


class Todo:

    data = {}

    def __init__(self):
        try:
            self.load()
        except:
            pass

    def save(self):
        with open('todo.pickle', 'wb') as f:
            pickle.dump(self.data, f)
        sys.exit()

    def load(self):
        with open('todo.pickle', 'rb') as f:
            self.data = pickle.load(f)

    def get_all(self):
        print()
        print('Список заметок:')
        print('---------------')
        if self.data.items():
            for k, v in self.data.items():
                print(' ' + k + '. ' + v)
        else:
            print(' Пока нет заметок')
        print()

    def update(self, num, text):
        self.data[num] = text
        self.get_all()

    def delete(self, num):
        if self.data.get(num):
            del(self.data[num])
        self.get_all()


todo = Todo()

actions = {
    '1': lambda: todo.get_all(),
    '2': lambda: todo.update(input('Введите номер заметки: '),
                             input('Введите текст заметки: ')),
    '3': lambda: todo.delete(input('Введите номер заметки: ')),
    '4': lambda: todo.save(),
    '5': lambda: sys.exit()
}

print()
print('Программа "Заметки"')
print('-------------------')
todo.get_all()

while True:
    print()
    print('Выберите действие:')
    print('------------------')
    print('1 - Показать заметки')
    print('2 - Добавить или изменить заметку')
    print('3 - Удалить заметку')
    print('4 - Сохранить и выйти')
    print('5 - Выйти без сохранения')
    print()
    x = input()
    if actions.get(x):
        actions[x]()
    else:
        print('Нет такого действия')
Привет, слушай это офигенно!!! А ты можешь немного объяснить свой код?)
 
  • Мне нравится
Реакции: Student

Форум IT Специалистов