Правильное построение цикла Python
Доброго времени суток!
Необходимо создать цикл по которому будет отбиратся одно значение из массива и отправляться по команде.
import telebot
import random
bot = telebot.TeleBot(token)
picture = random.choice(['url1', 'url2', 'url3'])
@bot.message_handler(content_types=['text'])
def send_pic(message):
if message.text.lower() == 'картинка':
bot.send_photo(message.chat.id, picture)
bot.polling(none_stop=True)
только начинаю все осваивать
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
У вас уже выбирается случайным образом одна картинка из списка. Если вы хотите, чтобы при каждой команде картинка выбиралась заново, то нужно переместить выбор картинки поближе к её отсылке, например так:
import telebot
import random
bot = telebot.TeleBot(token)
@bot.message_handler(content_types=['text'])
def send_pic(message):
if message.text.lower() == 'картинка':
picture = random.choice(['url1', 'url2', 'url3'])
bot.send_photo(message.chat.id, picture)
bot.polling(none_stop=True)
Если же вы хотите, например, отослать сразу все картинки из списка по очереди в ответ на одну команду, то тут уже можно использовать цикл:
import telebot
import random
bot = telebot.TeleBot(token)
@bot.message_handler(content_types=['text'])
def send_pic(message):
if message.text.lower() == 'картинка':
for picture in ['url1', 'url2', 'url3']:
bot.send_photo(message.chat.id, picture)
bot.polling(none_stop=True)
Не знаю, можно ли так делать в боте, но принцип работы с циклами такой.