Многие начинающие python-программисты задаются вопросом, а как сделать бота в Telegram? Я хочу небольшой пример показать, написав простейшего бота.
Сначала напишем игру "Угадай число" для обычной консоли, а потом эту игру перенесём в нашего Telegram бота. Думаю после этого вы поймёте, насколько просто можно написать бота в телеграме.
И так, я сделал игру "Угадай число" используя встроенную библиотеку в python, random. Вот как выглядит код:
Строго не судите, набросал за 5 мин, про обработку исключений не стал запариться
Было бы круто перенести эту игру в бота? Всё просто!
1. Переходим в телеграме в бот @BotFather и вводим команду: /newbot.
2. По инструкции создаем своего бота, и получим токен нашего бота, вот так примерно выглядит:
3. Скопируем его.
4. Теперь нам нужно установить необходимую библиотеку для работы с telegram API. Я пользуюсь современной, асинхронной библиотекой aiogram. Открываем терминал и через команду: pip install aiogram установим её.
5. Можно приступать к написанию кода.
В качестве примера я перенесу игру "Угадай число" в моего бота. У меня получился вот такой код:
да, тут есть вопросы безопасности и т.д. Но, в рамках учебной цели думаю сойдёт!
6. Запустим код и переходим к нашему боту. Проверим, всё ли работает, и радуемся!
Сначала напишем игру "Угадай число" для обычной консоли, а потом эту игру перенесём в нашего Telegram бота. Думаю после этого вы поймёте, насколько просто можно написать бота в телеграме.
И так, я сделал игру "Угадай число" используя встроенную библиотеку в python, random. Вот как выглядит код:
Python:
from random import randint
start_num = 0
end_num = 20
random_num = randint(start_num, end_num)
print(f'''
Добро пожаловать в игру Угадай число!
Всё очень просто, компьютер загадает число от {start_num} до {end_num}, тебе необходимо его угадать!
Вперёд :)''')
user_num = int(input('Какое число я загадал? '))
while user_num != random_num:
if user_num < random_num:
print('Загаданное число больше. Попробуй ещё раз: ')
elif user_num > random_num:
print('Загаданное число меньше. Попробуй ещё раз: ')
user_num = int(input('Какое число я загадал? '))
else:
print(f'Поздравляю, ты выиграл! Загаданное число - {random_num}')
Было бы круто перенести эту игру в бота? Всё просто!
1. Переходим в телеграме в бот @BotFather и вводим команду: /newbot.
2. По инструкции создаем своего бота, и получим токен нашего бота, вот так примерно выглядит:
6384386836:AAFZgWhJH0zoq4jxaAuc9rqNcRJHz8AIW10
4. Теперь нам нужно установить необходимую библиотеку для работы с telegram API. Я пользуюсь современной, асинхронной библиотекой aiogram. Открываем терминал и через команду: pip install aiogram установим её.
5. Можно приступать к написанию кода.
В качестве примера я перенесу игру "Угадай число" в моего бота. У меня получился вот такой код:
Python:
from aiogram import Bot, Dispatcher, types, executor
from random import randint
TOKEN_API = 'YOUR_BOT_TOKEN'
start_num = 0
end_num = 20
random_num = randint(start_num, end_num)
bot = Bot(token=TOKEN_API)
dp = Dispatcher(bot=bot)
START_MESSAGE = f'''
Добро пожаловать в игру Угадай число!
Всё очень просто, бот загадает число от {start_num} до {end_num}, тебе необходимо его угадать!
Вперёд :)'''
@dp.message_handler(commands=['start'])
async def cmd_start(msg: types.Message) -> None:
await bot.send_message(msg.from_user.id,
START_MESSAGE,
parse_mode='HTML')
await bot.send_message(msg.from_user.id,
'Какое число я загадал?')
@dp.message_handler(content_types=['text'])
async def cmd_game(msg: types.Message) -> None:
if not msg.text.isdigit():
await msg.answer('Введи корректное число.')
return
user_num = int(msg.text)
if user_num < random_num:
await msg.answer('Загаданное число больше. Попробуй ещё раз: ')
elif user_num > random_num:
await msg.answer('Загаданное число меньше. Попробуй ещё раз: ')
else:
await msg.answer(f'Поздравляю, ты выиграл! Загаданное число - {random_num}')
if __name__ == '__main__':
executor.start_polling(dispatcher=dp,
skip_updates=True)
6. Запустим код и переходим к нашему боту. Проверим, всё ли работает, и радуемся!
Последнее редактирование: