@Retan0

Discord.py кортеж и split,в чем проблема?

@commands.command(pass_context=True)
async def choice(self, ctx, *args:str):
choices = " ".join(args.split()[0:]).split(", ")
choiced = f"{random.choice(choices)}"
count = len(choices)

if count > 1:
embed = discord.Embed(title=f"{choiced}", description=f"Вибрано з {choices}", color=0x630099)
embed.set_footer(text=f"Запросив {ctx.author.name}")
await ctx.send(embed=embed)
else:
await ctx.send("-")
Я не понимаю немного в чем проблема,я пытался при помощи choices = " ".join(list(args).split()[0:]).split(", ")
еще делать,но как-бы не пошло
  • Вопрос задан
  • 62 просмотра
Решения вопроса 2
@Retan0 Автор вопроса
Все было просто, choices = " ".join(args).split(", "),вместо choices = " ".join(args.split()[0:]).split(", ")
Ответ написан
Комментировать
Vindicar
@Vindicar
RTFM!
Ты пытаешься сделать рандомный выбор из введённых значений?
А на кой пельмень ты вообще соединяешь args? Если они разделяются пробелом, то так
# команда вызывается как !choice вариант1 вариант_2 "вариант 3"
@commands.command(pass_context=True)
async def choice(self, ctx, *args:str):
  chosen = random.choice(args)

А если прямо нужно через запятую, то лучше так:
# команда вызывается как !choice вариант1, вариант 2, вариант 3
@commands.command(pass_context=True)
# discord.py интерпретирует * как "всю остальную строку засунь в следующий параметр" 
async def choice(self, ctx, *, args:str): 
  choices = [arg.strip() for arg in args.split(',')]
  chosen = random.choice(choices)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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