Задать вопрос
  • Как сделать расчёт пройденного расстояния лучом?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Формула: W/sin(a). Ну, или косинус, в зависимости от того, что вы за угол задаете. W - ширина прямоугольника.

    Вывести формулу просто со стандартным трюком: вместо отражения луча, отражайте зеркальную комнату, а луч пусть идет прямо. Тогда луч просто пройдет вдоль кучи вертикально сложенных одинаковых прямоугольников.

    Формула осмысленна: если нет отражений, она очевидна. Чем вертикальнее луч, тем больше ответ.

    Формула меняется для любой отправной точки: надо лишь опять нарисовать решетку из прямоугольников. Видимо, там будет не W, а оставшаяся ширина от начала до правой стенки.
    Ответ написан
    6 комментариев
  • Как использовать re.findall?

    @maximq
    QA Engineer
    Используйте backslash:
    re.findall(r"\b[A-Z0-9a-z\-\+\_]{8}\b", message.text)
    Ответ написан
    Комментировать
  • Как реализовать условие правильно?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вся функция сводится к одной строке.
    def sum_range(start:int, end:int)-> int:
        return (start + end) * (abs(end - start) + 1) / 2;
    Ответ написан
    1 комментарий
  • Почему при запросе в python mysql бд выдает ошибку?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В MySQL 8.0.2 и выше GROUPS - зарезервированное слово. Если хотите так назвать таблицу или колонку, надо брать название в обратные апострофы - `groups`.
    Ответ написан
    1 комментарий
  • Где ошибка в данном коде для ESP32?

    @mordo445
    Если не работает в железе, значит прблема в железе. Проверьте, как потключен потенциометр, считайте с него в COM порт сырые данные, считайте в COM порт adcValue1, посмотрите на результат, соотвествует ли тот ожиданиям. Проверьте, в вашей версии ядра PWM при инициализации 10 бит? По умолчанию в ардуино 8.
    Ответ написан
    Комментировать
  • Какие есть лёгкие альтернативы у стандартного средства просмотра фотографий windows?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Используйте IrfanView - он работает еще быстрее стандартного вьюера, скорости света и вообще открывается раньше, чем даже на кнопку нажмете или откроете файл. Ничего лучше не придумали и уже не придумают.
    Ответ написан
    4 комментария
  • Есть ли свободные нейросети улучшающие качество звука?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Начни с обычных фильтров. Когда поймешь какой фильтр работает и дает эффект - то тогда сможешь оценить
    качество работы нейросетей. В противном случае получается что нейросеть что-то там сделала а как
    сделала - непонятно. В большинстве случаев людям достаточно убрать шум или фон или звукового сопровождения.
    Ответ написан
    Комментировать
  • Не запускается код скомпилированный с помощью pyinstaller на другом компе, что делать?

    Vindicar
    @Vindicar
    RTFM!
    Код написан чат гпт4, я не программист

    Тогда, боюсь, тебе на фриланс. Кто знает, что там эта дура железная наворотила. Нужно же понимать, что генеративные сети не понимают, что пишут - они тупо ремиксят то, что когда-то видели.

    Но да, вполне может быть, что проблема в этом:
    # Привязываем сокет к определенному адресу и порту
    server_address = ('192.168.1.32', 12345)
    server_socket.bind(server_address)

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

    сделать программу для получения информации от клиента и записи ее в txt файл

    Что за информация? Как она получается? Критично ли именно в txt файл?
    В простейшем случае может хватить и гугл-формы.

    Короче, вывод: нехрен полагаться на гпт, вообще ни в чём. Там нужно в два раза лучше разбираться, чтобы понять, оно дело сделало, или фигню наворотило.
    Ответ написан
    1 комментарий
  • Частично не работает код при float значениях, почему?

    IvanU7n
    @IvanU7n
    nothing interesting here
    классика, сравнение в вещественных числах всегда нужно делать через |a - b| < epsilon, где epsilon либо есть в константах как минимальное представимое значение (sys.float_info.epsilon) либо подбирается эмпирически по контексту
    Ответ написан
    Комментировать
  • Как написать простой код со светодиодной лентой ардуино?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Оля, здесь задают конкретные вопросы. Наивно ожидать. что под ваш вот этот абстрактный запрос кто-то напишет вам тут готовый скетч или подготовит индивидуальный учебный курс. Это вне формата данного ресурса. Предполагается, что вы самостоятельно изучаете тему, а сюда приходите с конкретными вопросами и непонятками после того, как вам не удалось нагуглить решение и найти ответ в сети.

    Чтобы мой ответ не был совсем бсполезным, могу посоветовать вот этот сайт: https://alexgyver.ru/
    Здесь полно обучающих материалов, рассказано как работать с ардуино, RGB-светодиодами и адресными лентами. У автора сайта есть канал на ютубе с кучей обучающих роликов, а также подборки компонентов, инструментов и прочего. Есть даже проект лампы-будильника, о которой вы спрашиваете: https://alexgyver.ru/dawn-clock/
    Ответ написан
    Комментировать
  • Как внешне открыть файл с помощью python?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    есть ли в python функция, для открытия файла? (open не подойдёт)


    Суть в том, чтобы открывать файл нажатием на него, а не выбором в приложении.


    А какое отношение к этому имеет сам питон? Это вопрос к интерфейсу операционной системы, как в ней зареганы ассоциации.
    Если вам нужно, чтобы конкретный скрипт на питоне открывал конкретные файлы, зарегайте ассоциацию с параметром и в скрипте открывайте файл, переданный параметром.

    Но ваш вопрос звучит таким образом, что я подозреваю смысла предыдущего абзац вы не поймете...
    Ответ написан
    Комментировать
  • Как убрать помехи от серво на ардуино? Какой емкости кондесатор использовать?

    @kalapanga
    Это не от помех конденсатор поставлен. В процессе движения типичные хоббийные сервы потребляют небольшой ток. Но могут иметь место короткие скачки потребляемого тока, например в начале движения. Если источник питания совсем слабый, то просадка напряжения может привести к перезагрузке МК. Вот тут немного поможет этот конденсатор (470 мкФ или более). Но лучше просто иметь БП достаточной мощности.
    Ответ написан
    2 комментария
  • Как называется (термин) предельное число в счетной системе континуумного типа?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Вы про точную верхнюю грань последовательности (супремум)? Обозначается она символом sup.
    Ответ написан
    Комментировать
  • Сколько раз можно перезаписывать прошивку в микроконтроллер?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Имеется, как и предел итераций записи на SSD или флеш накопитель. Только вот реально ли его достигнуть на практике - вопрос открытый.
    Скажем, первое что нагуглилось:
    Производители микроконтроллеров AVR в документации указывают что их Flash-память можно перезаписывать не менее 10000 раз, а EEPROM- 100000 раз.
    Ответ написан
    5 комментариев
  • Как считать выражение из переменной?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Если это
    lst = [1, 2, 1-2**64, 2**64]
    то нельзя, так как 1-2**64 вычисляется в момент создания списка.

    Единственный вариант - сразу передавать в строковом виде
    lst = ["1", "2", "1-2**64", "2**64"]
    pairs = [(x, eval(x)) for x in lst]
    min_pair = min(pairs, key=lambda x: x[1])
    print(min_pair[0])
    Ответ написан
    Комментировать
  • В чем заключается ошибка в коде python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Это типичная ошибка тех, кто не учил язык. Попробуйте так:
    if self.s1 in [color1, color2]:
    Ответ написан
    4 комментария
  • OpenCV. Почему отдельные кадры из видео весят больше чем видео?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Потому что кадры в массивах хранятся в несжатом виде, а исходный видео-ролик сжат кодеком.
    Кодеки сейчас довольно сложные, у них много параметров сжатия и нетривиальные алгоритмы. Вы один и тот же ролик можете расжать и сжать по новой, а в результате получите совсем другой объём и даже немного отличающийся контент, ведь сжатие происходит обычно с потерей качества.
    Ответ написан
    Комментировать
  • Как проверить запустилась ли трансляция FFMPEG через Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    UPD: Если вы не можете дождаться завершения дочернего процесса, то не обязательно блокировать программу для получения всего его выхлопа:
    import subprocess
    
    
    if __name__ == '__main__':
        cmd = 'py "(time.sleep(1) or print(i) for i in itertools.count())"'
        cmd = 'ping ya.ru'
        cmd = 'ffmpeg'
    
        with subprocess.Popen([cmd], stdout=subprocess.PIPE, text=True, shell=True) as p:
            for line in p.stdout:
                print(line.strip())

    Так вы можете получать выхлоп построчно или вовсе посимвольно:
    while 1:
        print(p.stdout.read(1), end='')

    Да, это по-прежнему блокирующий вызов, но вы можете читать строки в отдельном треде и по таймауту его закрывать, например.

    UPD2:
    Ну так что, автор, разобрался, или разжевывать надо решение?
    import subprocess
    import threading
    import logging
    import sys
    
    
    log = logging.getLogger(__name__)
    
    
    def check_process_output(process: subprocess.Popen, timeout: float, substring: str):
        def fetch_output():
            try:
                while process.poll() is None:
                    line = p.stdout.readline()
                    log.debug('FETCH: %s', line.strip())
                    data.append(line)
            except ValueError as e:
                pass
    
        data = []
        t = threading.Thread(target=fetch_output)
        t.start()
        log.debug(f'Wait %f s', timeout)
        t.join(timeout)
        result = substring in ''.join(data)
        log.debug('Output is%s contained substring %r', '' if result else ' NOT', substring)
        return result
    
    
    if __name__ == '__main__':
        logging.basicConfig(stream=sys.stderr, level='DEBUG')
        cmd = 'py "(time.sleep(1) or print(i) for i in itertools.count())"'
        cmd = 'ping ya.ru -c 8'
        # cmd = 'ffmpeg'
    
        with (subprocess.Popen([cmd], stdout=subprocess.PIPE, text=True, shell=True) as p):
            print('CHECK RESULT:', check_process_output(p, timeout=5, substring='ya.ru'))


    Можно сделать потомка от Popen, который будет вычитывать в треде свой stdout и на каждую строчку дёргать коллбэк, а также будет валиться по таймауту, если за какое-то время ни один коллбэк не вернул True.
    А можно просто добавить методы readline и read прямо в класс и с таймаутами в аргументах.
    Ответ написан
    4 комментария
  • Как зациклить это действие?

    Vindicar
    @Vindicar
    RTFM!
    Цикл while?
    Не, серьёзно. Это основы языка. Открой учебник и читай.
    Ответ написан
    Комментировать
  • Как "пропустить" напряжение дальше только при подаче напряжение с 2 других провдов?

    @d-stream
    Готовые решения - не подаю, но...
    Так работает обычное электромагнитное реле с нормальноразомкнутыми контактами.
    Провода А и С - на контактную группу, В - на обмотку

    И тогда при появлении напряжения на обмотке (В) контактная группа замкнётся и А и С соединятся между собой.

    Ну а если на B будет напряжение, а на А - нет - то замыкание А-С - даст то же отсутствие напряжения)))

    Ну и реле бывают твердотельными/полупроводниковыми/оптронными/etc

    з.ы. транзистор, тиристор, триод (ежели кто помнит) - поведут себя сходным образом
    Ответ написан
    2 комментария