• Разница между root exception и cause exception в Spring Framework?

    @wearyweary
    Вечный студент
    RootCause (или root exception) => это самое внутреннее исключение, причина.
    Cause => Это соответственно объект исключения который вернет метод getCause(). Первопричина для текущего исключения.
    Например, можно так добраться до RootCause:
    public static Throwable getRootCause(Throwable e) {
        if (e.getCause() == null) return e;
        return getRootCause(e.getCause());
    }
    Ответ написан
    Комментировать
  • У Sublime Text появляется ошибка [WinError] не удается найти указанный файл с чем это связанно?

    @wearyweary
    Вечный студент
    Запустите терминал и введите команду python --version, если выдаст ошибку, то нужно добавить питон в PATH
    Ответ написан
    Комментировать
  • Почему зависает авторизация Telethon на двухфакторной аутентификации?

    @wearyweary
    Вечный студент
    Попробуйте поставить брейкпойнт (точку останова) на 15 строчку (где у вас следующий код):
    await client.sign_in(password=password)
    И запустите программу под дебаггером. По идее вам дебаггер по шагам покажет какой код выполняется и будет понятно почему все зависло.
    Ответ написан
  • Почему имя класса не определяется?

    @wearyweary
    Вечный студент
    Простейшее описание класса выглядит так:

    class Point:
        pass

    То, что вы хотите сделать, выглядит так:
    class Point3D:
        def __init___(self, x, y, z):
            self.x = x
            self.y = y
            self.z = z


    Можно создать объект и вывести его содержимое на экран:
    p1 = Point3D(1, 2, 15) # Создать объект
    dir(p1) # Вывести содержимое

    Или сделать следующим образом:
    p1 = Point3D(1, 2, 15) # Создать объект
    print(p1.x) # вывести координату x
    print(p1.y) # вывести координату y
    print(p1.z) # вывести координату z
    Ответ написан
    Комментировать
  • Шифр Виженера, как можно сделать лучше код?

    @wearyweary
    Вечный студент
    Я бы сделал этот код более человеко-читаемым, для начала.
    import textwrap
    
    alf_uppercase = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'
    alf_lowercase = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'
    input_phrase = input('Введите фразу: ')
    keyword = input('Слово: ')
    action = str(input('1 - шифр, 2 - дешифр: '))
    
    def encrypt_text(text):
        length = 33
        result = ''
      
        for i in range(len(input_phrase)):
            if input_phrase[i] in alf_lowercase:
                original = input_phrase[i]
                key = keyword[i]
                position = alf_lowercase.find(original)
                key_position = alf_lowercase.find(key)
                encrypted_char = (position + key_position) % length
                result += alf_lowercase[encrypted_char]
            elif input_phrase[i] in alf_uppercase:
                original = input_phrase[i]
                key = keyword[i]
                position = alf_uppercase.find(original)
                key_position = alf_lowercase.find(key)
                encrypted_char = (position + key_position) % length
                result += alf_uppercase[encrypted_char]
            else:
                result += input_phrase[i]
        return result
    
    def decrypt_text(text):
        length = 33
        result = ''
      
        for i in range(len(input_phrase)):
            if input_phrase[i] in alf_lowercase:
                original = input_phrase[i]
                key = keyword[i]
                position = alf_lowercase.find(original)
                key_position = alf_lowercase.find(key)
                decrypted_char = (position - key_position) % length
                result += alf_lowercase[decrypted_char]
            elif input_phrase[i] in alf_uppercase:
                original = input_phrase[i]
                key = keyword[i]
                position = alf_uppercase.find(original)
                key_position = alf_lowercase.find(key)
                decrypted_char = (position - key_position) % length
                result += alf_uppercase[decrypted_char]
            else:
                result += input_phrase[i]
        return result
    
    spaces = []
    for i in range(len(input_phrase)):
        if input_phrase[i] == ' ':
            spaces.append(i)
        input_phrase = input_phrase.replace(' ', '')
    
    symbols = []
    characters = []
    
    for i in range(len(input_phrase)):
        if input_phrase[i] not in alf_lowercase and input_phrase[i] not in alf_uppercase:
            symbols.append(i)
            characters.append(input_phrase[i])
        else:
            continue
    
    while len(input_phrase) != len(keyword):
        for i in range(0, len(keyword)):
            if len(input_phrase) != len(keyword):
                keyword += keyword[i]
    
    for i in range(len(symbols)):
        position = symbols[i]
        keyword = keyword[:position] + characters[i] + keyword[position:]
        keyword = keyword[:len(input_phrase)]
    
    move_dict = {
        '1': encrypt_text,
        '2': decrypt_text,
    }
    
    encrypted_text = move_dict.get(action)(action)
    
    for i in range(len(spaces)):
        placement = spaces[i]
        encrypted_text = encrypted_text[:placement] + ' ' + encrypted_text[placement:]
    
    print(textwrap.fill(encrypted_text, 157))

    Плюс то, что сказали выше.
    Ответ написан
    Комментировать
  • Поиск данных в JSON?

    @wearyweary
    Вечный студент
    Лучше, конечно, использовать JsonPath.
    Ответ написан
    Комментировать
  • Для чего нужны метаклассы в Python?

    @wearyweary
    Вечный студент
    Как уже выше написали - метаклассы нужны чтобы в рантайме создавать другие классы. Используется например в ORM, таких как PonyORM/SQLAlchemy чтобы генерировать энтити, которые потом будут отображены на строки в таблицах в базе данных.
    Ответ написан
    Комментировать