Конечно! Вы можете использовать библиотеку `random` в Python, чтобы генерировать случайные числа, а затем определять, с какой вероятностью возвращать ответ вашего бота. Вот пример, как это можно сделать с использованием `aiogram` для реализации бота:
```python
import random
from aiogram import Bot, Dispatcher, types
from aiogram.utils import executor
API_TOKEN = 'YOUR_API_TOKEN'
# Инициализация бота и диспетчера
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
@dp.message_handler(commands=['start'])
async def send_welcome(message: types.Message):
await message.reply("Привет! Напиши что-нибудь, и я отвечу с вероятностью 50%!")
@dp.message_handler(lambda message: True) # Обрабатываем любое сообщение
async def echo(message: types.Message):
# Проверяем, содержится ли в сообщении ключевое слово
keyword = "проверка" # Замените на ваше ключевое слово
if keyword in message.text.lower(): # Приводим текст к нижнему регистру для удобства
# Генерируем случайное число от 1 до 100
probability = random.randint(1, 100)
if probability <= 50: # 50% вероятность
await message.reply("Вы ответили на ключевое слово!")
else:
await message.reply("Я не ответил на это сообщение.")
else:
await message.reply("Запрос не содержит ключевого слова.")
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
```
### Разбор кода:
1. **Импортируем библиотеки**: Импортируем необходимые модули из `aiogram` и `random`.
2. **Инициализация бота**: Замените `YOUR_API_TOKEN` на токен вашего Telegram-бота.
3. **Создаём обработчик команд**: Обработчик команды `/start` отправляет приветственное сообщение.
4. **Обработчик сообщений**:
- Используем `@dp.message_handler(lambda message: True)`, чтобы реагировать на любое сообщение.
- Проверяем, содержится ли ключевое слово (в нашем примере - "проверка") в сообщении.
- Если ключевое слово найдено, генерируем случайное число от 1 до 100.
- Если число меньше или равно 50, отправляем ответ.
5. **Запуск бота**: Используем `executor.start_polling(dp, skip_updates=True)` для запуска бота.
Теперь, когда кто-то напишет сообщение, и в нем будет указано ключевое слово "проверка", бот ответит с вероятностью 50%. Если ключевого слова нет, бот просто сообщит, что запрос не содержит ключевого слова.