Задать вопрос
  • Как вывести полностью строки через \n в python?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Ну если через это г..., то
    x_split = x.split('\n')
    print(x_split[0]) # где 0 - номер нужной вам строки (считая  с 0)
    Если вы ищете по предмету, то можно и такое сварганить
    def extract_specific_lines(text, subject_keyword):
        # Разбиваем строку на отдельные строки
        lines = text.split('\n')
    
        # Начинаем с пустого списка для хранения нужных строк
        selected_lines = []
    
        # Флаг для отслеживания, когда начинается нужный блок строк
        start_collecting = False
    
        # Перебираем все строки
        for line in lines:
            if line.startswith(f"Предмет: {subject_keyword}"):
                start_collecting = True
            if start_collecting:
                selected_lines.append(line)
                # Останавливаем сбор после последней нужной строки
                if line.startswith("Задания и решения:"):
                    break
    
        # Объединяем выбранные строки в одну строку
        result = '\n'.join(selected_lines)
    
        return result
    
    # Ваша исходная строка
    x = """Предмет: Право
    Сроки проведения: 3 декабря 2024 года
    Время начала: 16:00
    Классы участия: 9–11
    Итоги проверки: официальная публикация ожидается 9.12
    Задания и решения: задания и решения
    --------------------
    Предмет: Математика
    Сроки проведения: 4 декабря 2024 года
    Время начала: 16:00
    Классы участия: 7–8
    Итоги проверки: официальная публикация ожидается 12.12
    Задания и решения: задания и решения"""
    
    # Используем функцию для извлечения нужных строк
    subject_keyword = "Математика"
    result = extract_specific_lines(x, subject_keyword)
    
    # Выводим результат
    print(result)


    Но вообще все это бред. По-хорошему надо так:
    blocks = []
    block = {
            "Предмет": subject,
            "Сроки проведения": dates,
            "Время начала": times,
            "Классы участия": grades,
            "Итоги проверки": itog,
            "Задания и решения": results_publication
    }
    blocks.append(block)

    А потом делайте, что хотите. Например вывести всё на экран можно так
    for block in blocks:
        for key, value in block.items():
            print(f"{key}: {value}")
        print("-" * 20)
    Ответ написан
    1 комментарий
  • Как реализовать отложенное сообщение?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    asyncio.sleep() ?

    + в том фреймворке на котором вы пишите может быть реализация отложенной отправки.
    Ответ написан
    2 комментария
  • Как отправлять сообщения по расписанию с aiogram3?

    Vindicar
    @Vindicar
    RTFM!
    Открываем страницу пакета, читаем пример.
    В конце видим рабочий цикл aioschedule, где периодически вызывается корутина aioschedule.run_pending().
    У тебя этого нет. Т.е. ты планируешь вызов своей корутины, но не выполняешь код, который этот вызов сделает.
    Поскольку у тебя scheduler() вызывается через create_task(), то можно прямо в тело scheduler() дописать что-то типа
    while True:
        await aioschedule.run_pending()
        await asyncio.sleep(0.1)

    Вот только зачем ты делаешь await create_teask()? Это убивает смысл create_task(), так как ты ждёшь завершения созданной фоновой задачи. Вместо этого сохрани таск в глобальную переменную - так он точно не будет собран сборщиком мусора, и ты сможешь при необходимости вызвать метод cancel(), чтобы прервать цикл внутри scheduler().
    Ответ написан
  • Есть ли в VBA что то похожее на списки python?

    Krasnoarmeec
    @Krasnoarmeec
    Тяжело, наверное умному и красивому, когда в Гугле забанили?
    Вторая ссылка ведёт на Excel VBA Dictionary – A Complete Guide. Со списками - тоже самое - ищите и обрящете.
    Ответ написан
    Комментировать
  • Как связать код Python и GUI на wxPython?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    6717cf333e689297739155.png
    Код
    import wx
    
    class MyFrame(wx.Frame):
        def __init__(self, *args, **kwds):
            kwds["style"] = kwds.get("style", 0) | wx.DEFAULT_FRAME_STYLE
            wx.Frame.__init__(self, *args, **kwds)
            self.SetSize((250, 250))
            self.SetTitle("frame")
    
            sizer_1 = wx.WrapSizer(wx.VERTICAL)
    
            fields = [
                ("Ширина (м)", "a"),
                ("Длина (м)", "b"),
                ("Высота (м)", "h"),
                ("Окно ширина (м)", "o1"),
                ("Окно высота (м)", "o2"),
                ("Дверь ширина (м)", "d1"),
                ("Дверь высота (м)", "d2"),
            ]
    
            # Create grid sizers and controls dynamically
            for label_text, attr in fields:
                grid_sizer = wx.GridSizer(1, 2, 0, 0)
                sizer_1.Add(grid_sizer, 1, wx.EXPAND, 0)
    
                label = wx.StaticText(self, wx.ID_ANY, label_text)
                grid_sizer.Add(label, 0, wx.ALL, 1)
    
                text_ctrl = wx.TextCtrl(self, wx.ID_ANY, "")
                setattr(self, attr, text_ctrl)  # Store the text control in the instance
                grid_sizer.Add(text_ctrl, 0, 0, 0)
    
            # Create a horizontal sizer for the result and button
            h_sizer = wx.BoxSizer(wx.HORIZONTAL)
    
            # Result text control
            self.itogo = wx.TextCtrl(self, wx.ID_ANY, "")
            self.itogo.SetBackgroundColour((171, 171, 171))
            h_sizer.Add(self.itogo, 1, wx.EXPAND | wx.ALL, 5)
    
            # Calculate button
            self.button_1 = wx.Button(self, wx.ID_ANY, "Посчитать", size=(110, 21))
            h_sizer.Add(self.button_1, 0, wx.ALL, 5)
            self.button_1.Bind(wx.EVT_BUTTON, self.onclick)
    
            # Add the horizontal sizer to the main sizer
            sizer_1.Add(h_sizer, 0, wx.EXPAND, 0)
    
            self.SetSizer(sizer_1)
            self.Layout()
    
        def onclick(self, event):
            a = float(self.a.GetValue())
            b = float(self.b.GetValue())
            h = float(self.h.GetValue())
            o1 = float(self.o1.GetValue())
            o2 = float(self.o2.GetValue())
            d1 = float(self.d1.GetValue())
            d2 = float(self.d2.GetValue())
    
            result = round(a * 2 * h + b * 2 * h - o1 * o2 - d1 * d2, 2)
            self.itogo.SetValue(str(result))
    
    class MyApp(wx.App):
        def OnInit(self):
            self.frame = MyFrame(None, wx.ID_ANY, "")
            self.SetTopWindow(self.frame)
            self.frame.Show()
            return True
    
    
    if __name__ == "__main__":
        app = MyApp(0)
        app.MainLoop()
    Ответ написан
    1 комментарий
  • Переменные на кирилице?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Никак не влияет.
    Нравится, удобно - пишите. Особенно, если не планируете что ваш код будут использовать/поддерживать иностранцы.
    Ответ написан
    3 комментария
  • Переменные на кирилице?

    Vindicar
    @Vindicar
    RTFM!
    Позволяет. Использовать эту возможность не советую, и в придачу к приведённым выше причинам добавлю ещё одну, очень простую: ключевые слова и вся стандартная библиотека языка на латинице. Задолбаешься переключать раскладку.
    Ответ написан
    Комментировать
  • Переменные на кирилице?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    На работу кода никак не влияет.
    А вот путаницы в разработке, особенно в командной, может добавить.
    Ответ написан
    Комментировать
  • Ф sqlite3.ProgrammingError: Cannot operate on a closed database. Что делать?

    Убрать db.close() из кода?
    Ответ написан
    Комментировать
  • Почему выключается VK бот?

    @Everything_is_bad
    Screen остается активным бот просто вылетает. при повторном перезапуске все ок.
    потому что надо делать сразу по нормальному:
    1. запускать через systemd, там будет и автозапуск с перезапуском при падении, и прочее
    2. ну и настроить логирование
    Ответ написан
    1 комментарий
  • Почему не записываются данные в таблицу бд SQlite3?

    @Razraaab
    Лучше не используйте вообще sqlite3 для работы с тг ботами, используйте aiosqlite и другие асинхронные версии для работы с базами данных. Лучший вариант sqlachemy тут вы сможете менять бд почти не меняя кода, а также не придется писать запросы самому.

    А и ответ на ваш вопрос, вы коммит не делаете
    self.cursor.execute("Ваш запрос')
    self.connection.commit()
    Ответ написан
    4 комментария
  • Как работать с GitHub средствами python?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ответ написан
    Комментировать
  • Какую библитеку или интерфейс выбрать?

    chuikoalex
    @chuikoalex
    Викторович
    Посмотри как это сделано вот в этом проекте:
    https://github.com/chuikoalex/QT_DispatcherDatabase
    Архитектура там конечно не фонтан )) но сам принцип построения огромной таблицы с SQLite можно использовать.
    Сейчас с ней нормально работают и таблица там на 15000+ строк.
    Ответ написан
    Комментировать
  • Почему не нажимается кнопка сохранить заболевание?

    HemulGM
    @HemulGM Куратор тега Python
    Delphi Developer, сис. админ
    Покупаешь магический шар и спрашиваешь у него. Все программисты так делают. И не вздумай гуглить, что такое "отладка".
    Ответ написан
    Комментировать
  • Как получить данные из JSON через VK_api?

    @BARBARISKA0
    В event.object.message['payload'] находится строка
    Ее можно превратить в словарь и уже получать 'type'
    json.loads(event.object.message['payload'])['type']
    Ответ написан
    1 комментарий
  • При смене api токена изменяются номера бесед?

    @ArconPlay
    А вот к сожалению, никак нельзя исправить в ВКонтакте то, что каждая группа и пользователь видят свой ID беседы. Это фиксированная функция платформы, и пользователи не могут на нее повлиять.
    Советую для этого использовать ТГ: @act_chat_bot
    Ответ написан
    1 комментарий
  • Как проверить и заменить индексы в словаре?

    fenrir1121
    @fenrir1121
    Начни с документации
    Не придумывать велосипед и использовать Pydantic
    Ответ написан
    1 комментарий
  • Как проверить и заменить индексы в словаре?

    Vindicar
    @Vindicar
    RTFM!
    Делаешь словарь с набором значений по умолчанию, потом вызываешь на нём метод update(), передав туда словарь, полученный извне. Это обновит первый словарь, добавив/перезаписав ключи, пришедшие из второго словаря.
    Ответ написан
    4 комментария
  • VK Api запрос groups.getMembers. Как работает?

    SonnySP
    @SonnySP Автор вопроса
    Very Junior Java
    Каюсь. Я ставил задержку в 100мс, ничего не сработало.

    Экспериментальным путем выяснил минимально возможную задержку в 221мс(больше можно, но зачем?), меньше задержку уже не воспринимает.
    Ответ написан
    Комментировать