Задать вопрос
@skyline48

Стоит ли переходить на IDE?

В одном из ответов здесь я прочитал, что лучше на этапе обучения писать код в блокноте и без подсказок, только оф.документация.
import sqlite3

class Notes:
    def __init__(self, login):
        self.notes = []
        self.login = login
        self.menu()
    def menu(self):
        while True:
            print('1. Добавить заметку')
            print('2. Удалить заметку')
            print('3. Просмотреть все заметки')
            print('4. Выйти из профиля')
            entry = input('Введите число: ')
            if entry == '1':
                self.add_note()
            elif entry == '2':
                pass
            elif entry == '3':
                self.view_notes()
            elif entry == '4':
                print('Пока!')
                break
            else:
                print('Нужно ввести число из предложенных вариантов!')
    def add_note(self):
        while True:
            print('Напиши заметку')
            print('Если хочешь вернуться назад, напиши \'Назад\'')
            note = input('Твой текст: ')
            if note.strip().lower() == 'назад':
                break
            else:
                note = note.strip()
                self.notes.append({
                                   'login': self.login,
                                   'note': note
                                   })
                print(note)
                Memory().save_notes_db(self.login, note)
                print('Заметка добавлена!')
    def view_notes(self):
        notes = Memory().load_notes_db()
        view = []
        for note in notes:
            if note[0] == self.login:
                view.append(note[1])
        for num, note in enumerate(view, 1):
            print(f'{num}. {note}')

class Authorization:
    def __init__(self):
        self.users = []
        self.authorization = False
    def auth(self):
        while True:
            print('1. Ввести логин и пароль')
            print('2. Зарегистрироваться')
            print('3. Выход')
            answer = input('Ваш выбор: ')
            if answer.strip().lower() == '1':
                self.login()
            elif answer.strip().lower() == '2':
                self.registration()
            elif answer.strip().lower() == '3':
                print('Пока!')
                break
    def login(self):
        users = Memory().load_users()
        while True:
            login = input('Введите логин: ')
            password = input('Введите пароль: ')
            for user in users:
                if user[0] == login.strip() and user[1] == password.strip():
                    return Notes(login)
            else:
                print('Неверный логин или пароль!')
    def registration(self):
        users = [user[0] for user in Memory().load_users()]
        while True:
            print('Регистрация.')
            login = input('Введите логин: ')
            
            if login.strip() in users:
                print('Пользователь уже существует! Введите другой логин или войдите в систему')
            else:
                while True:
                    password = input('Введите пароль: ')
                    if len(password) > 3:
                        user_save = Memory()
                        user_save.save_users_db(login, password)
                        return Notes(login)
                    else:
                        print('Пароль не может быть пустым или быть меньше 4 символов!')
                

class Memory:
    def __init__(self):
        self.notes_con = sqlite3.connect('notes.db')
        self.users_con = sqlite3.connect('users.db')
    def load_notes_db(self):
        cur_notes = self.notes_con.cursor()
        data = cur_notes.execute('SELECT * FROM notes')
        notes = data.fetchall()
        return notes
    def load_users(self):
        cur_users = self.users_con.cursor()
        cur_users.execute('CREATE TABLE IF NOT EXISTS users(login, password)')
        data = cur_users.execute('SELECT * FROM users')
        users = data.fetchall()
        return users
    def save_users_db(self, login, pwd):
        cur_users = self.users_con.cursor()
        cur_users.execute('''INSERT INTO users(login, password) VALUES (?, ?)''', (login, pwd))
        self.users_con.commit()
        self.users_con.close()
    def save_notes_db(self, login, note):
        cur_notes = self.notes_con.cursor()
        cur_notes.execute('CREATE TABLE IF NOT EXISTS notes(login, notes)')
        cur_notes.execute('''INSERT INTO notes(login, notes) VALUES (?, ?)''', (login, note))
        self.notes_con.commit()
        self.notes_con.close()
                    
notes = Authorization()
notes.auth()


Я самостоятельно написал код без подсказок, там еще много что нужно править. Мне хотелось понять, стоит ли дальше делать это в блокноте или это только будет меня замедлять? Я не понимаю свой уровень знаний.
  • Вопрос задан
  • 103 просмотра
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 4
Vamp
@Vamp
В одном из ответов здесь я прочитал, что лучше на этапе обучения писать код в блокноте и без подсказок

Такой совет могли дать только деды, которые сами учились в блокноте (потому что других вариантов тогда не существовало) и считают, что "раз уж я страдал, то пусть и другие тоже страдают".

Когда я запрыгиваю в новый язык, всегда делаю это в полноценной IDE со встроенными подсказками, линтерами, подсветками и полным фаршем. Тогда вхождение в новый язык происходит намного быстрее и проще. И вам советую делать так же. Современной разработки не существует без IDE. Не вижу смысла оттягивать момент знакомства с IDE на более поздний срок.
Ответ написан
1. Попробуй использовать IDE. Совет "писать код в блокноте" кажется странным мне.
2. Код странный вышел, потом как-нибудь почитай про паттерны проектирования. Сейчас у тебя перемешаны между собой разные слои и явно видно нарушение ответственности. На таком небольшом примере это не так критично, но в больших проектах текущий подход принесёт большую боль.
Ответ написан
Комментировать
@Refguser
Решения для бизнеса: корп.сайты, ИМ, боты и пр.
Конечно нужно сразу осваивать правильные инструменты.
Блокноты могут пригодиться только для редкого исправления/написания пары десятков строк.

spoiler
Вот я сам много лет пользуюсь продвинутым блокнотом (акелпад) для периодической правки php-кода и написания небольших решений. Но это не значит что так лучше. Просто привычка и задачи, не требующие ИДЕ. Но когда/если появятся задачи для более плотной работы с кодом я непременно буду юзать IDE
Ответ написан
Комментировать
@Drno
vscode или аналог + подписка на Claude
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы