Задать вопрос
  • Почему возникает ошибка "length mismatch: expected axis has 3 elements, new values have 4 elements"?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    1. Я бы не стал, если этого нет в условиях, которые вы, быть может, не озвучили, менять сущность первого столбца. Прочёл бы без index_col=0: test_df = pd.read_excel(orders_path)
    2. Переименовывание делал бы уже включая первый столбец:
    test_df.columns = ['Weekday', 'Shop_1', 'Shop_2', 'Shop_3', 'Shop_4']

    3.
    test_df = pd.read_excel(orders_path, index_col=0)
    if not os.path.exists(orders_path):
        print(f"Файл {orders_path} не найден.")

    Делать проверку на наличие файла после того, как уже прочли его в датафрейм? Поменяйте последовательность.
    4. Ну и меня смущает почему тестовая система хочет 3. Возникает вопрос о доп. условиях или что пытаетесь скормить результат тесту, не под той задачей, например.
    Ответ написан
    Комментировать
  • Как убрать экспоненциальную запись числа в input type=number?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    <input type="number" step="0.00000001" id="numberInput" />
    
    <script>
      const input = document.getElementById("numberInput");
    
      input.addEventListener("input", () => {
        const value = parseFloat(input.value);
        if (!isNaN(value)) {
          input.value = value.toFixed(8); // Форматируем до 8 знаков после запятой
        }
      });
    </script>
    Ответ написан
    2 комментария
  • Счет сразу прибавляется и отнимается когда я подбираю спрайт. Что делать?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    1. Жёстко прописывать width, height, наверное, не лучшая идея. Надо подстраивать под разрешение монитора, там где её запустили. Я, запустив, например, не увидел счётчик про который вы говорите.
    2. Строка 84: pygame. --> g <-- uit()
    3. Переменная счётчик жизней count_lifes должна быть глобальной. Сейчас вы её обнуляете в цикле, каждый тик.
    675e97cac1322119685536.png
    Ответ написан
    1 комментарий
  • Как в Python заставить tg-бота выполнять команду с определенной вероятностью?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    import random
    
    random_value = random.random()
    if random_value >= 0.5:
        # посылает ответ
    else:
        pass
    Ответ написан
    3 комментария
  • Направления создание клона Minecraft?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Освоить базовый синтаксис русского языка.
    Ответ написан
    1 комментарий
  • Как правильно создать кнопку используя class, для открытия нового окна (без передачи аргументов, если это возможно)?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Решайте последовательно проблемы.
    Посмотрите, например, что у метода pack() нет таких параметров: https://metanit.com/python/tkinter/2.4.php
    Поменяйте на что-нибудь разрешённое: btnSc.pack(anchor=CENTER)
    И будет запускаться ваше окно с кнопкой на ютуб:
    675bcf788d595340062233.png
    Ответ написан
    2 комментария
  • Как написать автоматизированный тест для тестирования сортировки по цене?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    its_southpaw, [тестил на Win10, Edge].
    1. Что-то не так с селекторами, с теми которые у вас мне не удалось отыскать элементы.
    Для того, чтобы хотя бы был клик по выпадающему меню, использовал такой:
    SORT_BUTTON = (By.XPATH, "(//span[@class='select2-selection select2-selection--single select2-selection--buttoned select2-selection--buttoned-dark select select--sorting'])[1]")

    2. Для SORT_ASC использовал такой:
    SORT_ASC_OPTION = (By.ID, 'select2-catalog_sorting_mobile-7h-result-jsvp-price:asc')

    3. Для SORT_DESC вы вообще решили не писать.
    SORT_DESC_OPTION = (By.ID, 'select2-catalog_sorting_mobile-7h-result-jsvp-price:desc')

    4. В def select_sort_option() добавил небольшую задержку (2-3 секунды) после
    WebDriverWait(self.driver, 10).until(EC.staleness_of(option))
    .

    После этих манипуляций стало так:
    675a4852cde6a196859565.png

    Но второй тест не пройдёт, потому что вот это:
    675a46e898655425277103.png
    Что приводит к: [...11900, 11900, 7735, 11900...], что никак не будет равно отсортированному списку цен в assert.

    З.Ы. если вы хотите читаемую кириллицу в выводе, а не вот это вот:
    test_sort_by_price[\u0426\u0435\u043d\u0430 \u043f\u043e \u0432\u043e\u0437\
    ,
    то добавьте файлик pytest.ini с содержимым:
    [pytest]
    disable_test_id_escaping_and_forfeit_all_rights_to_community_support = True
    Ответ написан
    Комментировать
  • Перехват web уведомлений которые приходят в Windows?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    prerequisite: python 3.9 и winrt

    spoiler
    import asyncio
    from winrt.windows.ui.notifications.management import UserNotificationListener
    from winrt.windows.ui.notifications import KnownNotificationBindings
    
    async def notification_handler(listener, seen_notifications):
        print("Слушатель уведомлений запущен. Ожидание новых уведомлений...")
    
        # Бесконечно слушаем уведомления
        while True:
            try:
                # Получение всех текущих уведомлений
                notifications = await listener.get_notifications_async(0)
    
                for notification in notifications:
                    notification_id = notification.id  # Получаем уникальный ID уведомления
    
                    # Проверяем, было ли это уведомление уже обработано
                    if notification_id not in seen_notifications:
                        seen_notifications.add(notification_id)  # Добавляем ID в множество обработанных уведомлений
    
                        try:
                            # Получение информации об уведомлении
                            app_name = notification.app_info.display_info.display_name
                            binding = notification.notification.visual.get_binding(KnownNotificationBindings.get_toast_generic())
                            if binding:
                                text_elements = binding.get_text_elements()
                                title = text_elements[0].text if len(text_elements) > 0 else "Без заголовка"
                                body = text_elements[1].text if len(text_elements) > 1 else "Без текста"
                                print(f"Новое уведомление!")
                                print(f"Приложение: {app_name}")
                                print(f"Заголовок: {title}")
                                print(f"Текст: {body}")
                                print("-" * 50)
    
                               # Проверяем что ув. от нужного приложения и делаем всякое нужное с ним.
    
                        except Exception as e:
                            print(f"Ошибка при обработке уведомления: {e}")
    
                # Задержка перед следующим циклом
                await asyncio.sleep(1)
    
            except Exception as e:
                print(f"Ошибка при получении уведомлений: {e}")
                await asyncio.sleep(5)  # Задержка перед повторной попыткой в случае ошибки
    
    async def main():
        # Получение текущего слушателя уведомлений
        listener = UserNotificationListener.get_current()
    
        # Смотрим есть ли разрешение на доступ к уведомлениям. Если нет, лезем в настройки уведомлений.
        access_status = await listener.request_access_async()
        if access_status != 1:
            print("Нет разрешения на доступ к уведомлениям. Проверьте настройки конфиденциальности.")
            return
    
        seen_notifications = set()  # Множество для хранения ID уже обработанных уведомлений
        await notification_handler(listener, seen_notifications)
    
    if __name__ == "__main__":
        asyncio.run(main())

    67590b9765568892633574.png
    Ответ написан
    Комментировать
  • Как подключиться к серверу MySql на pythonanywhere?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Since you have a free account, you will only be able to connect to your database using code running inside PythonAnywhere.
    Ответ написан
  • Как закрыть файл (фотографию) после использования команды os.startfile?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Закрывайте приложение, которое открывает файл, как вариант:
    os.system('taskkill /IM Honeyview.exe') # <= поменяйте на ту программу что у вас ассоциирована с jpg.


    З.Ы. os.startfile() возвращает None, нет смысла присваивать переменной.
    Ответ написан
    5 комментариев
  • Как спарсить такой веб-сайт?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    import requests
    from bs4 import BeautifulSoup
    
    def parse_table(div, results):
        # Ищем таблицы внутри данного div
        tables = div.find_all('table')
        for table in tables:
            rows = table.find_all('tr')
            for row in rows:
                cells = row.find_all('td')
                if cells:
                    # Извлекаем название и ссылку
                    name = cells[0].get_text(strip=True)
                    link = cells[0].find('a')['href'] if cells[0].find('a') else None
                    if link:
                        results[name] = link
    
    def recursive_parse(url, visited, results):
    
        if url in visited:
            return
        visited.add(url)
        print('Парсим URL:', url)
    
        response = requests.get(url)
        soup = BeautifulSoup(response.content, 'html.parser')
    
        # Ищем все div с itemscope
        divs = soup.find_all('div', itemscope=True)
        for div in divs:
            parse_table(div, results)  # Парсим таблицы внутри найденного div
    
        # Ищем все ссылки на подстраницы
        links = soup.find_all('a', href=True)
        for link in links:
    
            sub_url = link['href']
            # Проверяем, что ссылка ведет на подстраницу и не является текущим URL
            if 'respublika_bashkortostan' in sub_url and sub_url.startswith('http') and sub_url != url:
                recursive_parse(sub_url, visited, results)
    
    # Начальная URL
    start_url = 'https://russiaschools.ru/respublika_bashkortostan/'
    visited_urls = set()
    results_dict = {}
    recursive_parse(start_url, visited_urls, results_dict)
    
    
    for name, link in results_dict.items():
        print(f'Название: {name}, Ссылка: {link}')


    З.Ы. я не знаю могут ли быть одинаковые наименования (например МБДОУ ДС №5) в разных районах, поэтому или просто выводите на экран или записывайте вместе с названием района.
    Ответ написан
    Комментировать
  • Как реализовать отложенное сообщение?

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

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

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Если вам достаточно пробелов, отступов и пустых строк:
    file_content="$(cat /some/file)"
    
    echo $file_content
    >>> lol kek cheburek. kol
    
    echo "$file_content"
    >>> lol
    kek cheburek.
    kol


    Если вам зачем-то нужны ещё и переносы строк:
    f=""
    while IFS= read -r line || [[ -n "$line" ]]; do
        f+="${line}"$'\n'
    done < 1.txt
    
    f="${f%$'\n'}"
    echo "$f" > 2.txt
    Ответ написан
  • Как можно со временем поменять цвет выведенного в терминал текста?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Второе число (у вас 31) отвечает за цвет.
    print('\u001b[0m') сброс на настройки по умолчанию.

    import time
    
    print('\u001b[1;32mЗеленый текст', end='')
    time.sleep(3)
    print('\r\u001b[1;31mКрасный текст', end='')
    Ответ написан
    2 комментария
  • Ядра ЦП в vmware равны ли физическим ядрам?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    • The maximum number of virtual CPUs that you can assign to a virtual machine is 768. The number of virtual CPUs depends on the number of logical CPUs on the host, and the type of guest operating system that is installed on the virtual machine.

    • A virtual machine cannot have more virtual CPUs than the number of logical cores on the host. The number of logical cores is equal to the number of physical cores if hyperthreading is deactivated or two times that number if hyperthreading is activated.


    https://docs.vmware.com/en/VMware-vSphere/8.0/vsph...

    З.Ы. От 8 до 16 (с HT или аналогом), если верить документации.
    Ответ написан
    1 комментарий
  • Python PyQt ошибка 0xC0000409 почему?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    В getExistingDirectory()первым позиционным аргументом должен идти parent, а вы передаёте первым self.
    Должно быть так (ну, или MainWindow):
    def getDirectory(self): 
            dirlist = QFileDialog.getExistingDirectory(None, "Выбрать папку", "C:\\100")
            self.plainTextEdit.appendHtml("<br>Выбрали папку: <b>{}</b>".format(dirlist))
            print(dirlist)


    Ну и мой комментарий по поводу plainTextEdit.
    Ответ написан
    Комментировать
  • Как сгенерировать промежуточные координаты?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    1. Случайные координаты: steps - шаги между контрольными точками.
    2. Случайное время исполнения: time_movie - время перемещения в секундах.

    import time
    from numpy.random import randint, default_rng
    
    def f(coords: list, time_movie: int, steps: int) -> list:
        x_a, y_a = [], []
        now = int(time.time() * 1000)
        rng = default_rng()
        timestamp = sorted(rng.integers(now, now + time_movie * 1000, size=(steps * len(coords) - 1) + 1))
    
        for i in range(len(coords) - 1):
            x1, y1, x2, y2 = coords[i] + coords[i + 1]
            x_a += [x1] + sorted(randint(min(x1, x2), max(x1, x2), size=steps), reverse=1 if x1 > x2 else 0) + [x2]
            y_a += [y1] + sorted(randint(min(y1, y2), max(y1, y2), size=steps), reverse=1 if x1 > x2 else 0) + [y2]
    
        return [[x, y, t] for x, y, t in zip(x_a, y_a, timestamp)]
    
    coords = [[392, 556], [95, 309], [207, 192]]
    print(f(coords=coords, time_movie=2, steps=30))
    Ответ написан
    5 комментариев
  • Как написать скрипт(или формулу) для выполнения переноса строки на другой лист, при определённых условиях?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Avis_Falcon, используйте фильтр в листе с выполненными задачами:
    =FILTER(Do!B1:D6;Do!A1:A6)

    6744a336837a6983925440.png
    Ответ написан
    Комментировать
  • Как называется статья про рекурсию inpaint в SD?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    ИИ-модели ломаются при обучении на рекурсивно сгенерированных данных https://habr.com/ru/companies/bothub/articles/832216/ ?
    Ответ написан
    1 комментарий
  • Как устранить ошибку при запуске Луа кода на sciTE?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    В SciTE включить юникод в файле "SciTEGlobal.properties":

    # Unicode
    code.page=65001
    #code.page=0
    #character.set=204
    # Required for Unicode to work on GTK+:
    LC_CTYPE=en_US.UTF-8
    output.code.page=65001
    Ответ написан