Случайное не определено для разногласий - PullRequest
0 голосов
/ 09 февраля 2020

Я пытался закодировать бота Discord и сделать 8бол, но он говорит мне, что случайный не определен.

@client.command(aliases=['8ball'])
async def _8ball(ctx, *, question):
        responses = [ "It is certain.",
                    "It is decidedly so.",
                    "Without a doubt.",
                    "Yes - definitely.",
                    "You may rely on it.",
                    "As I see it, yes.",
                    "Most likely.",
                    "Outlook good.",
                    "Yes.",
                    "Signs point to yes.",
                    "Reply hazy, try again.",
                    "Ask again later.",
                    "Better not tell you now.",
                    "Cannot predict now.",
                    "Concentrate and ask again.",
                    "Don't count on it.",
                    "My reply is no.",
                    "My sources say no.",
                    "Outlook not so good.",
                    "Very doubtful."]
        await ctx.send(f'Question: {question}\nAnswer: {random.choices(responses)}')

И я получаю ошибку

discord.ext.commands.errors.CommandInvokeError: Command raised an exception: NameError: name 'random' is not defined

Что-то не так в моем коде? Это мой первый раз код.

Ответы [ 2 ]

1 голос
/ 09 февраля 2020

Где-то в вашем коде есть переменная с именем random. Я вижу, что он должен иметь функцию с именем choices. Вы используете его в строке вашей f-строки:

await ctx.send(f'Question: {question}\nAnswer: {random.choices(responses)}')

Убедитесь, что вы определили ее до этой строки.

Или, если это стандарт random в Python core, тогда, как подсказывает jasonharper , убедитесь, что вы импортировали его.

0 голосов
/ 11 февраля 2020

Возможно, вам нужно import random Go в верхней части кода, где вы import discord и введите вниз и import random, затем попробуйте. См .: https://docs.python.org/3/library/random.html

...