@edys

Как сделать рандомный ответ из списка в боте Telegram на Python?

Извините даже не знаю как это сформулировать.
Вообщем у меня дано 5 вариантов ответа в списке: [яблоко', 'банан', 'груша', 'персик'].
Как сделать что бы при нажатии на клавиатуру, из списка выдавался рандомный ответ.
К примеру :
Я нажимаю на кнопку выдачи рандомного фрукта, и мне выдается яблоко
Потом опять нажимаю на кнопку и выдается груша
Потом опять нажимаю и к примеру персик.

Вот сам код :

import telebot
import random

from telebot import types

#Токен телеграм-бота
bot = telebot.TeleBot(')

#Приветственное сообщение при команде '/start'
@bot.message_handler(commands=['start'])
def zdarova(message):
    bot.send_message(message.chat.id, 'Privet', reply_markup=markup )

#Клавиатура
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item1 = types.KeyboardButton('Нажми на кнопку, и я отправлю тебе название фрукта')

markup.add(item1)

fruit = ['яблоко', 'банан', 'груша', 'персик']


@bot.message_handler(content_types=['text', 'photo'])
def messagelist(message):
	if message.text == 'Нажми на кнопку, и я отправлю тебе название фрукта':
		bot.send_message(message.chat.id, (fruit))
	else:
		bot.send_message(message.chat.id, 'ниче не понял')

#Запуск бота
bot.polling(none_stop=True, interval=0)
  • Вопрос задан
  • 8864 просмотра
Решения вопроса 1
WolfInChains
@WolfInChains
bot.send_message(message.chat.id, random.choice(fruit))
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
SokuciusErgalla
@SokuciusErgalla
Для этого всего лишь нужно юзать random.choice()
import telebot
import random

from telebot import types
from random import choice

#Токен телеграм-бота
bot = telebot.TeleBot('1802145216:AAHgiNmQvIpM9IdsWA3_Wpw1drPe3HKCBnE')

#Приветственное сообщение при команде '/start'
@bot.message_handler(commands=['start'])
def zdarova(message):
    bot.send_message(message.chat.id, 'Privet', reply_markup=markup )

#Клавиатура
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item1 = types.KeyboardButton('Нажми на кнопку, и я отправлю тебе название фрукта')

markup.add(item1)

fruit = ['яблоко', 'банан', 'груша', 'персик']


@bot.message_handler(content_types=['text', 'photo'])
def messagelist(message):
  if message.text == 'Нажми на кнопку, и я отправлю тебе название фрукта':
    bot.send_message(message.chat.id, random.choice(fruit))
  else:
    bot.send_message(message.chat.id, 'ниче не понял')

#Запуск бота
bot.polling(none_stop=True, interval=0)
Ответ написан
@ShockerJP
Можно так же создать текстовик например fruit.txt с построчным написанием:
# Например в файле будет написано так :
Яблоко
Банан
Груша
Персик
# Открываем его:
with open('fruit.txt', 'r', encoding="utf-8") as fruit:
fruit= fruit.readlines()
#И в сообщение через random.choice(fruit) будем получать рандомный ответ
bot.send_message(message.chat.id, random.choice(fruit))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы