Ответы пользователя по тегу Python
  • Как упростить проверку наличия данных в словаре?

    @Medovochka
    Для упрощения проверки наличия данных в словаре вы можете использовать метод get() для словаря.

    fields = ['email', 'birthday', 'gender']
    
    for field in fields:
        value = data.get(field)
        print(value)


    Также можно использовать словарное включение (dictionary comprehension) для создания нового словаря, содержащего только существующие поля:

    fields = ['email', 'birthday', 'gender']
    existing_fields = {field: data.get(field) for field in fields if field in data}
    print(existing_fields)
    Ответ написан
    Комментировать
  • Как исправит эту ошибку кода на питоне?

    @Medovochka
    Для исправления этой ошибки можно добавить условие в функцию f, чтобы она останавливалась, когда n достигает значения 5000. Вот исправленный код:

    from math import factorial
    
    def f(n):
        if n >= 5000:
            return factorial(n)
        else:
            return 2 * f(n + 1) / (n + 1)
    
    print(f(7))


    Теперь функция f будет вызывать factorial(n), когда n >= 5000, и возвращать результат. В противном случае, она будет вызывать себя рекурсивно, увеличивая значение n на 1 на каждом шаге, пока не достигнет значения 5000.
    Ответ написан
    Комментировать
  • Python Selenium как обработать выпадающий список?

    @Medovochka
    Попробуйте этот код:

    from selenium import webdriver
    from selenium.webdriver.support.select import Select
    
    # Инициализация драйвера
    driver = webdriver.Chrome()
    
    # Открытие веб-страницы
    driver.get("https://example.com")
    
    # Нахождение элемента выпадающего списка
    dropdown = driver.find_element(By.XPATH, '//*[@id="block-content"]/div/article/div[1]/table[3]/tbody/tr[1]/td[2]/select')
    
    # Создание объекта класса Select
    select = Select(dropdown)
    
    # Выбор опции по тексту
    select.select_by_visible_text("Шапокляк")
    
    # Закрытие драйвера
    driver.quit()
    Ответ написан
    Комментировать
  • Не работает код ошибки Python Bot?

    @Medovochka
    Вот так попробуй:

    import asyncio
    from telegram import Bot
    
    
    # Укажите здесь ваш токен бота Telegram
    bot_token = 'ВАШ_ТОКЕН'
    
    # Укажите здесь идентификатор целевой группы, куда нужно отправлять сообщения
    group_id = 'ВАШ_ИДЕНТИФИКАТОР_ГРУППЫ'
    
    # Текст сообщения
    message_text = 'Привет всем участникам группы!'
    
    
    async def send_message_to_group_members():
        # Создание экземпляра бота
        bot = Bot(token=bot_token)
    
        # Получение списка участников группы
        group_members = await bot.get_chat_members_count(chat_id=group_id)
    
        # Отправка сообщения каждому участнику группы
        for member in group_members:
            user_id = member.user.id
            try:
                await bot.send_message(chat_id=user_id, text=message_text)
                print(f'Сообщение отправлено пользователю с ID {user_id}')
            except Exception as e:
                print(f'Ошибка при отправке сообщения пользователю с ID {user_id}: {e}')
    
        # Отправка сообщения в группу от вашего бота
        await bot.send_message(chat_id=group_id, text=message_text)
        print('Сообщение отправлено в группу')
    
    
    # Запуск асинхронной функции
    asyncio.run(send_message_to_group_members())
    Ответ написан
    Комментировать
  • Почему ИНОГДА получаю ошибку ElementNotInteractableException?

    @Medovochka
    Проблема в том, что Селениум не может определить данный элемент. Скорее всего вы вызываете не правильно + надо подождать, возможно не 15 секунд. Попробуйте по другому:

    wait.until(EC.element_to_be_clickable(...

    И добавлены ли у вас кондишены?
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC


    Еще и не забывайте о том, что могут быть проблемы с браузером - Хром всегда открывается в полноэкранном режиме, если вы ничего дополнительно не настроили
    Ответ написан
    4 комментария
  • На чем можно написать телеграмм игру вроде Lumberjack?

    @Medovochka
    Тут весь список языков, на которых есть возможность написания ботов ( и игр соответственно к ним привязанным): https://core.telegram.org/bots/samples

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