Хорошо, ребята, мне нужна помощь. По сути, я создаю discord-бота. У меня возникли проблемы с командой очистки (очистки). Итак, это мой код до сих пор:
моя проблема здесь заключается в следующем if amount == None .
Пожалуйста, помогите мне!
Я получаю сообщение об ошибке, что у меня отсутствует требуемый аргумент…
1. Не могли бы вы включить в свой вопрос все сообщение об ошибке, а также то, как вы вызываете свою команду в discord?
Ответ №1:
Это потому, что вы не указываете amount значение по умолчанию None . Вот как вы должны определить функцию:
Ответ №2:
Это работает для меня
Я получил это от канала youtuber, вы можете указать количество сообщений, которые вы хотите очистить, после команды очистки, НАПРИМЕР:
-очистить 10
Ответ №3:
Это должно сработать, так как у меня есть команда clear, которая выглядит почти точно так. amount Параметр преобразуется в значение int, и если клиент не предоставит параметры, значение будет установлено равным 1000000 .
Discord.PY — #2 Clear CMD
Ответ №4:
Это тот, который я использую atm.
Я только что добавил оператор ‘if’ для того, чтобы быть единственным, кто может использовать эту команду. Вы также можете разрешить определенную роль.
Ответ №5:
вы можете сделать это:
Я думаю, что это должно сработать, если клиент не предоставляет параметры, сумма будет установлена на «-1»
Источник: programbox.ru
Discord Python Bot: инструкции Clear Command If
В настоящее время я привязываю к созданию бота Discord на питоне. Прошла около недели с тех пор, как я начал учиться, и я подумал, что попробую. Я пытаюсь сделать четкую функцию, чтобы очистить чат. Я хочу, чтобы бот говорил: «Пожалуйста, введите правильный номер». Если вы наберете что-нибудь еще, кроме int ex. немного char.
Например, когда я помещаю «.clear t», он ничего не делает и злится в терминале. Когда я ввожу допустимый аргумент, такой как «.clear 3», он выдает «пожалуйста, введите действительное число». после очистки всего этого.
Я пробовал разные варианты оператора if, включая размещение. Не могу понять. У меня есть ощущение, что это что-то вроде того, где разместить оператор if. Спасибо, что нашли время прочитать.
Комментарии (2)
if number != int(): что это должно делать? int() без аргументов всегда возвращает 0. Вы хотели передать какой-то аргумент в int() ?
Нет, я не хотел добавлять аргументы. Спасибо, что сообщили мне об этом.
21.06.2018 03:39
Оператор pass в Python — это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Python — самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science.
Discord.PY | How to make a bot | Episode 5 — Purge/Clear!!!
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
Перейти к ответу Данный вопрос помечен как решенный
Ответы 1
Ответ принят как подходящий
Вам нужно научиться правильно проверять тип объекта. В вашем случае, если number = 5 , а вы делаете if number != int(): , поскольку int() возвращает 0 , вы в основном говорите if 5 != 0: , что всегда.
Чтобы преодолеть вышесказанное, используйте isinstance(obj, type) . Однако это не имеет значения, поскольку number всегда будет строкой (если не используется значение по умолчанию).
Следующая строка вызовет ошибку, если number не может быть преобразован в целое число.
number = int(number)
Что вызывает ValueError , вам нужно поймать это, чтобы отправить сообщение об ошибке.
Однако с discord.py есть более простой способ вести диалоги типов, используя синтаксис аннотации типов:
Если вам отчаянно нужно отправить это сообщение об ошибке на канал, вы можете сделать это из события on_command_error . (Найдите их документацию)
Вы могли заметить, что я удалил часть counter , поскольку limit делает то же самое. (Убрана избыточность)
Источник: reddeveloper.ru
Discord Python Bot: очистить команду Если утверждения
В настоящее время я привязываюсь, чтобы сделать босс-споры в python. Прошло около недели с тех пор, как я начал учиться, и я подумал, что отдам это. Я пытаюсь сделать четкую функцию, чтобы очистить чат. Я хочу, чтобы бот сказал «пожалуйста, введите действительное число». Если вы введете что-либо другое, кроме int ex. какой-то знак.
Например, когда я помещаю «.clear t», он ничего не сделает, и он сердится на терминал. Когда я поставлю правильный аргумент, например «.clear 3», он выкинет «пожалуйста, введите действительный номер». после очистки все это. Я пробовал разные варианты выражения if, включая размещение. Не могу понять. У меня есть ощущение, что это что-то о том, где разместить выражение if.
Спасибо, что нашли время для чтения.
спросил(а) 2018-06-21T04:39:00+03:00 4 года, 11 месяцев назад
добавить комментарий
пожаловаться
Вам нужно научиться правильно проверять тип объекта. В вашем случае, если number = 5 , и вы делаете, if number != int(): поскольку int() возвращает 0 , вы в основном говорите, if 5 != 0: что всегда. Чтобы преодолеть вышеупомянутое, используйте isinstance(obj, type) . Однако это не имеет значения, так как number всегда будет строкой (если не используется значение по умолчанию). Наличие следующей строки вызовет ошибку, если number не может быть преобразовано в целое число.
number = int(number)
Что вызывает ValueError , вам нужно поймать это, чтобы отправить сообщение об ошибке.
Однако, с discord.py, есть более простой способ делать тиковые разговоры, используя синтаксис аннотации типа:
Если вам отчаянно нужно отправить это сообщение об ошибке на канал, вы можете сделать это из события on_command_error . (Поиск их документации) Возможно, вы заметили, что я удалил counter , так как limit делает то же самое. (Удаленная избыточность)
Источник: progi.pro