Задать вопрос
  • Что за модуль? Не могу найти?

    @o5a
    Mag1str, там еще сессия сохраняется, удалите перед запуском файл hi.session
  • Что за модуль? Не могу найти?

    @o5a
    Mag1str, ну я и говорю, нужно указать свой ключ. Ошибка указывает на то, то ключ в конфиге уже используется, нельзя на на одном ключе несколько ботов запускать.
  • Что за модуль? Не могу найти?

    @o5a
    Mag1str, запускается, до момента с ошибкой по ключу телеграм, т.к. он уже используется (тот, что в конфиге прописан), что логично. Т.е. все адекватно.
    Какая у Вас ошибка то, приведите текст.
  • Что за модуль? Не могу найти?

    @o5a
    Mag1str, нужно полностью скачать все файлы и папки куда-нибудь (можно по кнопке Code - Download ZIP, затем распаковать у себя). Зайти в эту папку и оттуда уже запускать app.py
  • Что за модуль? Не могу найти?

    @o5a
    Mag1str, Вы пытаетесь отдельно скрипт этот чтоли запустить, без всей остальной обвязки? Конечно не будет работать. Запускать нужно с полной структурой папок.
  • Что за модуль? Не могу найти?

    @o5a
    Mag1str, а что именно не понятно? Бот использует модуль aiogram
    handlers там это папка
    настройки прописывать в файле config.cfg
  • Как вставить переменную в sql запрос python?

    @o5a
    Рамис, только символы подстановки для разных баз разные. Если у автора sqlite, как в тэгах, то вместо '%s' должно быть '?'.
  • Как сделать бесконечную стрельбу в pygame?

    @o5a
    max_1O, тут я не особо в курсе, как правильно делать. Навскидку могу предложить самому контролировать интервалы между выстрелами. Добавить атрибут кораблю
    self.last_fire = 0
    И перед выстрелом проверять, что прошло достаточно времени с последнего выстрела. Типа такого
    def check_events(ship, settings, screen, bullets):
        """main event checker function"""
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            elif event.type == pygame.KEYDOWN:
                # working on keydown events
                check_keydown_events(event, ship, settings, screen, bullets)
                # function that checks keydown event type and works according event type
            elif event.type == pygame.KEYUP:
                check_keyup_events(event, ship)
                # function that checks keyup event type and works according event type
        print(len(bullets))  # to check amount of bullets on screen
        if ship.fire and len(bullets) < settings.bullets_allowed:
            if time.time() - ship.last_fire > 0.3: # задержка 0.3 с
                # continues firing until amount of bullets reaches limit
                new_bullet = Bullet(settings, ship, screen)  # creating new bullet
                bullets.add(new_bullet)  # adding created bullet to Group
                ship.last_fire = time.time()

    В целом посмотрите заодно в сторону pygame.time.Clock() для контроля FPS игры. Плюс возможно не стоит привязываться к количеству пулей на экране. Ведь когда корабль внизу экрана и в самом верху, пулям лететь разное расстояние, а раз ограничение всегда одно, то получается, что вверху экрана он "стреляет быстрее", чем внизу. Но если сделать ограничение выстрелов по времени, как выше, то ограничение по пулям на экране логичнее убрать, ведь у нас итак ограничен "темп стрельбы".
  • Как запустить несколько файлов python одновременно?

    @o5a
    Рома, в самих ботах (скрипты bot_1.py, ...) как все запускается? Должно быть так:
    def main():
        bot.polling(none_stop=True)
  • Как записать разные типы данных с помощью Python в таблицу SQL?

    @o5a
    Morrowind, так это и не для базы команда, а для модуля Python, взаимодействующего с базой Postgres. Как правило используют модуль psycopg2.
    Если Вы пользуетесь каким-то другим модулем, посмотрите его синтаксис для работы с передаваемыми параметрами.
  • Как реализовать прогрессбар при обработке файла в Python?

    @o5a
    Ternick, если эти функции обработки действительно значительное время занимают, то может быть полезно. Сам по себе перебор миллиона строк довольно быстрый.
  • Как использовать CASE для изменения таблицы?

    @o5a
    Samad_Samadovic,
    записывается в таблицу 'Музыка'

    там еще и отдельная таблица для музыки? зачем? как она связана с Home_work.
    id_ - Это количество строк, всё остальное это уроки в которые записывается дз.

    так опять же, сколько в этой таблице строк?
    Заводите всего одну строку на все случаи или там по какому-то принципу разные строки заводятся? Судя по тому, что речь была про 1 и 0, я так понимаю, что строка или есть или нет, но напрямую почему-то так и не ответите.
    Судя по всему, структуру таблиц явно не самую лучшую выбрали для своей задачи, отсюда такие танцы с бубном.

    Предположу, что строк в этой таблице не больше 1, т.е. записи или есть или нет.
    Тогда можно сделать так

    For_lessons = ['алгебра', 'геометрия'] # прописать все свои поля
    For_lessons_bind = ','.join('?'*len(For_lessons)) # формируем строку подстановок для данных
    CVB = '5,3' # это та самая строка данных по предметам
    data = CVB.split(',')
    
    # формируем список обновления полей по предметам
    For_lessons_update = ','.join(f"{lesson} = excluded.{lesson}" for lesson in For_lessons)
    
    # и запрос на вставку. пытается вставить с id_=1, если уже есть, то обновляет данные (update)
    c.execute(f"insert into Home_work (id_, {','.join(For_lessons)}) values(?, {For_lessons_bind}) on conflict(id_) do update set {For_lessons_update}", [1]+data)
  • Как отправить фото с подписью через бота?

    @o5a
    Asriel, а как вы собираетесь это "исправлять", если формат не предполагает таких длинных текстов в caption? Отсылайте отдельно следующим сообщением.
  • Как использовать CASE для изменения таблицы?

    @o5a
    Samad_Samadovic, в этой таблице Home_work предполагается всего лишь одна запись? Т.е. id_ по факту толком не используется? Там или есть одна запись со всеми предметами, или таблица пустая?
  • Возможно ли оптимизировать этот код?

    @o5a
    cherv11, справедливости ради, тут (как и в примере автора) нет смысла делать перебор по word, т.к. берется word.count, а не вручную считаются символы. Если сразу брать перебор по set(word), то и у простого метода скорость увеличится на порядки, хотя все равно уступает Counter.
  • Как использовать CASE для изменения таблицы?

    @o5a
    Samad_Samadovic,
    G - список с кортежем в котором содержится другой список с записанным уроком в определённом месте.

    ну что за описание, вы бы сами смогли понять, если не были автором кода?

    Приведите структуру своей таблицы (список полей или просто полностью 'create table ...') и пример данных, которые собираетесь вставлять/заменять. Из кода не понятно, какое поле предполагается уникальным. id (или id_ ?) это поле таблицы, оно уникально? Или по какому еще признаку предполагается определить, что нужно запись заменить, а не вставить?
    For_lesons - я так понимаю это и есть список тех полей "Алгебра" и т.д.?
    А CVB это типа строка с перечисленными через запятую данными по предметам?

    Тогда общий принцип такой может быть (без учета замены по id)
    For_lessons = ['алгебра', 'геометрия']
    For_lessons_bind = ','.join('?'*len(For_lessons)) # формируем строку подстановок значений
    CVB = '5,3'
    data = CVB.split(',')
    c.execute(f"insert into home_work ({','.join(For_lessons)}) values({For_lessons_bind})", data)
  • Программа вылетает без ошибки. Что делать?

    @o5a
    Для представления данных можно еще использовать f-строки, когда добавляется символ f и переменные пишутся в скобках:
    x = input(f"Хотите продолжить? счет: {c2} - {c1}{arg} (да чтобы продолжить!):")
  • Как использовать CASE для изменения таблицы?

    @o5a
    Samad_Samadovic,
    excluded - конструкция языка, ее не менять
    Алгебра,Геометрия,... - названия столбцов в этой таблице
    И как я запишу список для того что бы появились записи в столбцах?

    Предоставьте тогда описание своих данных, в каком формате у вас эти данные по предметам. В целом формат ничем не отличается от обычного INSERT, точно так же вторым параметром execute передается список с этими данными по предметам, ну и собственно тот уникальный столбец. И формат самой таблицы заодно.
  • Как использовать CASE для изменения таблицы?

    @o5a
    Samad_Samadovic, для такого случая используется конструкция (вместо многоточий подставить остальные поля таблицы)
    INSERT INTO Home_work (Алгебра, .... ) VALUES(?, ....) ON CONFLICT(id) DO UPDATE
    SET Алгебра = excluded.Алгебра,
    Геометрия = excluded.Геометрия,
    ...

    при этом предполагается, что id - то самое уникальное поле.
    Если у Вас это поле lug и оно уникальное, то заменить на него.
  • Как использовать CASE для изменения таблицы?

    @o5a
    Что это за монстр? Лучше опишите, что хотели реализовать.