@mikazyaka

Telebot не работает с list. Python?

Пишу бота на Python для телеги с использованием Telebot.
Требуется запросить у пользователя элементы списка и в конечном итоге выдать его обратно.
Столкнулся с тем, что как бы list (busket) не был заполнен, бот все равно выдает только первый элемент списка.
Как заставить выдать его весь list?
import telebot
import config

from telebot import types

bot = telebot.TeleBot(config.TOKEN)

@bot.message_handler(commands=['start'])
def welcome(message):
    sti = open('sticker.webp', 'rb')
    bot.send_sticker(message.chat.id, sti)

    # keyboard
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    item1 = types.KeyboardButton("Я хочу сделать заказ.")
    item2 = types.KeyboardButton("Я хочу принять заказ.")

    markup.add(item1, item2)

    bot.send_message(message.chat.id, "Добро пожаловать, {0.first_name}!\nЯ - <b>{1.first_name}</b>, бот заказчик, ты можешь заказать у меня еду в столовке, после чего твой заказ увидит любой человек из очереди и купит тебе еду.".format(message.from_user, bot.get_me()),
        parse_mode='html', reply_markup=markup)




@bot.message_handler(content_types=['text'])
def lalala(message):
    if message.chat.type == 'private':
        if message.text == 'Я хочу сделать заказ.':
            global busket
            busket = []
            markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
            item3 = ('Пицца')
            item4 = ('Чай')
            item5 = ('Круассан')
            item6 = ('Колобок')
            item7 = ('Сырная')
            item8 = ('Сосиска в тесте')
            item9 = ('На этом все')
            markup.add(item3, item4, item5, item6, item7, item8, item9)
            bot.send_message(message.chat.id, 'Хорошо, что ты хочешь заказать?', reply_markup=markup)
        if message.chat.type == 'private':
            if message.text == 'Пицца':
                busket.append('Пицца')
            elif message.text == 'Чай':
                busket.append('Чай')
            elif message.text == 'Круассан':
                busket.append('Круассан')
            elif message.text == 'Колобок':
                busket.append('Колобок')
            elif message.text == 'Сырная':
                busket.append('Сырная')
            elif message.text == 'Сосиска в тесте':
                busket.append('Сосиска в тесте')
            elif message.text == 'На этом все':
                bot.send_message(message.chat.id, busket)


# RUN
bot.polling(none_stop=True)
  • Вопрос задан
  • 494 просмотра
Решения вопроса 1
Может так?

answer = ''
for i in busket:
    answer += i
send_message(message.chat.id, answer)

Вместо
bot.send_message(message.chat.id, busket)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
shabelski89
@shabelski89
engineer
Бот выдает только строки, а как же головой подумать?)
Если список то можно пройтись по элементам?)
for elem in list_b:
    bot.send_message(userid, elem)
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы