Bl4ckm45k, я там перепутал местами сообщения, которые надо отправить в случае None и в случае числа))
Сначала написал if number:, а потом подумал, что при number==0 тоже уйдет в else. Поэтому явно проверил на None. Так что конечный вариант со всякими проверками должен быть примерно таким:
@dp.message_handler(commands=['number'])
async def number(message: types.Message):
number = message.get_args()
if number is None:
await message.reply("Введите число")
elif not number.isdigit(): # проверка на то, что в строке только цифры
await message.reply("Введите число, а не буквы")
elif int(number)<0:
await message.reply("Введите положительное число")
else:
await message.reply(f"Твое число {number}")
newbie63, сути не меняет. сделай сначала проверку на None, как я показал выше. А потом уже проверяй на отрицательное число. А еще лучше сделать еще одну проверку number.isdigit() чтобы убедиться, что это вообще число. И только в конце этих if..elif..elif если ничего не отвалится отправляй сообщние "Твое число {number}"
Виктор, потому что метод send_message принимает id чата в качестве параметра, а метод reply_to - принимает объект message. В документациях обычно это прописано
Виктор, int - это тип объекта. Видимо у какой-то переменной, которая имеет значение целого числа вы пытаетесь обратиться к атрибуту chat. Вы не весь текст ошибки указали, там еще была запись со строкой, где эта ошибка произошла. Старайтесь читать и понимать тексты ошибок, иначе разработка будет много времени занимать.
По поводу int могу предположить, что в какую-то переменную загнали id чата, а работать с ней пытаетесь как с объектом message.
Сначала написал
if number:
, а потом подумал, что при number==0 тоже уйдет в else. Поэтому явно проверил на None. Так что конечный вариант со всякими проверками должен быть примерно таким: