Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как выводить все результаты из цикла for в дискорд боте PYTHON

Александр Иванов Знаток (450), на голосовании 2 дня назад
Вот как должно выводить
Но в дискорде выводит так


Вот часть кода которым я интересуюсь
Голосование за лучший ответ
Татьяна Просветленный (32773) 1 месяц назад
Чтобы выводить все результаты из цикла for в вашем Discord боте на Python, вы можете использовать асинхронную функцию и собрать все результаты в одном сообщении перед отправкой.
 import discord 
from discord.ext import commands

bot = commands.Bot(command_prefix="!")

@bot.command()
async def holidays(ctx):
holidays = []
for info in block:
title = info.find('span', class_='title').text
link = info.findNext('a').get('href')
holidays.append(f"{title}\n{link}")

# Объединяем все результаты в одно сообщение
result_message = "\n\n".join(holidays)
await ctx.send(result_message)

# Запуск бота
bot.run('YOUR_DISCORD_TOKEN')
Основная идея заключается в том, чтобы сначала собрать все данные в список holidays, а затем объединить их в одну строку с помощью "\n\n".join(holidays), чтобы отправить все в одном сообщении.

Если вы хотите использовать slash-команды, пример будет аналогичным, но с использованием другой библиотеки для поддержки slash-команд. Например, для discord-py-slash-command:
 from discord.ext import commands 
from discord_slash import SlashCommand

bot = commands.Bot(command_prefix="!")
slash = SlashCommand(bot, sync_commands=True)

@slash.slash(name="holidays")
async def _holidays(ctx):
holidays = []
for info in block:
title = info.find('span', class_='title').text
link = info.findNext('a').get('href')
holidays.append(f"{title}\n{link}")

result_message = "\n\n".join(holidays)
await ctx.send(content=result_message)

bot.run('YOUR_DISCORD_TOKEN')
Похожие вопросы