Что делать если функция random.choice срабатывает только один раз за весь запуск кода?

Рейтинг: 0Ответов: 1Опубликовано: 10.04.2023

Что я сделал неправильно в этом куске кода? Команда которую вводит пользователь срабатывает только один раз за весь запуск кода. Можете пожалуйста написать как будет правильно? Надо чтобы каждый раз при вводе команды был разный результат.

Код:

roles = ["конечно", "скорей всего нет", "точно нет!", "шар не уверен :thinking:", "шар ничего не видит", "определенно ДА!", "шар в замешательстве, попробуйте еще", "все слишком мутно.. пропробуйте позже", "частично да" ]
role = random.choice(roles)
@bot.command()
async def ball(ctx):
    await ctx.send(role)

Ответы

▲ 0

При команде ball будет вызываться только функция ball, всё что в ней не находится не будет выполнено. В вашем коде сначала выбирается случайная роль которая и будет отправляться при команде ball. Для решения проблемы следует переместить случайный выбор роли в функцию.

roles = ...
@bot.command()
async def ball(ctx):
    role = random.choice(roles)
    await ctx.send(role)