Задать вопрос
  • Почему Python выдает ошибку в строке с newPosition?

    Vindicar
    @Vindicar
    akio1,
    теперь такая ошибка

    Это не ошибка, это строка с ошибкой. Неплохо бы научиться копипастить полное сообщение об ошибке.
    ??

    Тебе саркастически указывают на то же, на что указываю я. Пока что всё выглядит так, что вместо того, чтобы выучить основы языка, ты просто задаёшь вопрос по каждой встреченной ошибке, в надежде, что рано или поздно кто-то напишет код за тебя.
    Написано
  • Почему Python выдает ошибку в строке с newPosition?

    Vindicar
    @Vindicar
    akio1, а инструкция тут только одна.
    1. Откладываешь программу
    2. Находишь учебник по питону, типа того же Лутца, "Изучаем питон". Например, в 4м издании 10я глава - это как раз про инструкции(операторы).
    3. Внимательно читаешь.

    У тебя на одной строке три инструкции: for letter in encrypt:, position = alphabet.find(letter) и newPosition = position + key. Раздели их на отдельные строки, и поставь правильные отступы в начале. Это вообще самые азы питона, и если ты их не понимаешь, то нужно остановиться и заполнить пробел в знаниях. Иначе далеко ты не уедешь.
    Написано
  • Почему Python выдает ошибку в строке с newPosition?

    Vindicar
    @Vindicar
    akio1, см. ответ. Ты пишешь несколько команд в одну строку. В Питоне так нельзя (точнее, есть один способ, но не надо. Просто не надо.) Вот он и говорит, что не понимает, что делать с "продолжением".
    Разнеси команды на отдельные строки.
    Написано
  • Какие способы есть подготовки изображения к дальнейшему распознаванию текста с помощью Python?

    Vindicar
    @Vindicar
    glu-dimaz, connectedComponentsWithStats() обрабатывает бинарное черно-белое изображение и находит в нём изолированные белые "пятна" (блобы), после чего создаёт карту, на которой каждый независимый блоб имеет свою метку (значение пикселей). Для каждого блоба возвращается его метка, его ограничивающий прямоугольник, его площадь и координаты центроида (точки внутри блоба).
    Соотв. можешь ориентироваться на высоту ограничивающего прямоугольника - если масштаб скана более-менее одинаков, то все блобы-символы должны быть примерно одной и той же высоты.
    Выбрав из массива блобы-символы, перекопируешь их на новое изображение, и уже его распознаёшь.
    Написано
  • Как установить нужную версии aiogram PyCharm?

    Vindicar
    @Vindicar
    cornwr, возьми за основу официальные примеры, например, тот же эхобот. Он тебе покажет, как организовывать работу бота в целом. Дальше перетаскивай обработчик за обработчиком в нового бота. Насколько я знаю, работа с пользователями, сообщениями и т.п. не сильно изменилась.
    Написано
  • Как установить нужную версии aiogram PyCharm?

    Vindicar
    @Vindicar
    Так код-то у тебя вроде невелик, не проще ли переписать его под aiogram3 (он-то, надеюсь, ставиться)?
    Написано
  • Считывание ключа домофона через NFC?

    Vindicar
    @Vindicar
    dofisdofsd335GF, перечитай и осознай ответ выше, а?

    В телефонах NFC-модуль рассчитан на очень конкретный диапазон частот (в районе 13,56 МГц), который отстоит очень далеко от диапазона частот для RFID-меток и ключей. Ты можешь использовать отдельные девайсы-клонилки, даже тот же Флиппер это умеет. Но смартфоны тут ни о чём.
    Написано
  • Почему изменяется узел, который я создаю и засовываю в массив?

    Vindicar
    @Vindicar
    limaximy, польза в простоте, оптимизации и в необходимости для других механизмов.
    Значения по умолчанию для аргументов функции вычисляются один раз - в момент создания объекта функции. Не забываем, что в питоне функции - это такие же объекты, как числа, строки, списки и т.д.
    Объявление функции - это такой же оператор, как if или while.
    А дальше классический вопрос про лямбду. Что выведет этот код?
    funcs = []
    for i in range(5):
      funcs.append(lambda: print(i))
    for f in funcs:
      f()

    Правильный ответ: 5 раз выведет 4, потому что лямбды ссылаются на саму переменную i, а не на её текущее значение. Чинится это так:
    funcs = []
    for i in range(5):
      funcs.append(lambda x=i: print(x))
    for f in funcs:
      f()

    Это сработает как надо, потому что значение по умолчанию аргумента x будет запомнено в момент создания лямбды, и не будет меняться. Если это поведение изменить, то не будет вменяемого способа зафиксировать текущее значение переменной при создании лямбды. В принципе, всё вышеописанное применимо и не к лямбдам, а к обычным функциям.

    Если фиксировать значения вместо переменных, это мало того, что сломает глобальные переменные, но и создаст проблемы из-за того, что мутабельные и немутабельные типы будут вести себя по-разному - т.е. как раз то, от чего ты хочешь уйти. Но в ещё большем масштабе.
    Написано
  • При нажатии на button, вызвать cmd?

    Vindicar
    @Vindicar
    AmanitaRubescens, тогда модуль subprocess в руки. Если команда короткая, то можно прямо в обработчике команду запускать. А если долгая и спамит в консоль, придётся заморочиться с отдельным потоком и своевременным выкачиванием данных из stdout/stderr.
    Написано
  • Как сделать так чтобы объединённые ячейки тоже показывались в print?

    Vindicar
    @Vindicar
    SoySois, эуто уже сложнее. Тогда тебе надо помнить о каждой ячейке с rowspan, которую ты видел, и подставлять её значение.
    Написано
  • Как сделать так чтобы объединённые ячейки тоже показывались в print?

    Vindicar
    @Vindicar
    SoySois, а пустая ячейка - это <td></td> в разметке, или вообще ничего? В первом случае код увидит тег, а в нём пустую строку. Во втором случае код не увидит ничего. Тут только проверять длину списка, и разруливать ситуацию в зависимости от неё.
    Написано
  • Как решить задачу на определения ближайшего др сотрудника?

    Vindicar
    @Vindicar
    Оформи код, нечитаемо же. Кнопка </> в помощь.
    Написано
  • Почему данные не выводятся?

    Vindicar
    @Vindicar
    MioShina, ну просто для проверки... если вместо row['id'] написать row.id? Или row[0]?
    Первое не должно, по идее, ничего изменить. А вот второе может.
    Написано
  • Почему данные не выводятся?

    Vindicar
    @Vindicar
    MioShina, ну да, что-нибудь вроде
    results = cursor.fetchall()
    print(len(results))
    for row in results:
      print(row)
    Написано
  • Почему данные не выводятся?

    Vindicar
    @Vindicar
    А если отладочный print() добавить, у тебя в results точно нужные данные лежат?
    Написано
  • Каков должен быть sys.path у чистого Python 3.1x под Windows?

    Vindicar
    @Vindicar
    А из этого репозитория не заводится? У меня оттуда как минимум 3.10 успешно на семерке завёлся.
    https://github.com/adang1345/PythonWin7
    Насчёт 3.12 - там была проблема с поиском подходящей версии numpy.
    Написано
  • Как исправить ошибку отключения распознавания речи?

    Vindicar
    @Vindicar
    Это не принципиально. В основном приложении используется subprocess.run(), он затормозит поток пока запущенный процесс не закончит работу. Сколько потоков в запущенном процессе - не важно.
    Написано
  • Классы. Принцип работы __add__ с __radd__?

    Vindicar
    @Vindicar
    Raddzor788, а что не понятного? У тебя в __add__() вызов return Commuter5(self.value + other).
    Это реализует такую цепочку вызовов:
    1. self.value + other вызывает int.__add__(self.value, other)
    1.1 Так как int не знает, как прибавить к себе Commuter5, отрабатывает Commuter5.__radd__(other, self.value)
    2. Commuter5.__new__() (унаследовано от object.__new__()) создаёт новый экземпляр класса Commuter5.
    3. Commuter5.__init__() получает экземпляр из 2 и то, что было вычислено в 1.1, и инициализирует этот экземпляр.
    4. return возвращает инициализированный экземпляр из 3, завершая вызов Commuter5.__add__().

    Т.е. у тебя __init__() заполняет данными новый экземпляр.
    Написано
  • Классы. Принцип работы __add__ с __radd__?

    Vindicar
    @Vindicar
    Raddzor788, код оформляй кнопкой </> в редакторе, сайт не поддерживает маркдаун.
    И свой поток создания тоже, пожалуйста, структурируй на абзацы.
    Чем читаемее вопрос - тем больше будет желающих его читать - тем больше шансов получить ответ.
    Написано
  • Упустил, но что?

    Vindicar
    @Vindicar
    Мне кажется, или код для медианы предполагает, что список отсортирован?
    А ведь у нас нет гарантий, что это так.
    Написано