Внешний l oop будет бесконечно l oop, поскольку time
никогда не меняется. Внутренний l oop также будет бесконечно l oop, когда время> 8, поскольку newtime
устанавливается на time
на каждой итерации l oop.
Кроме того, вы спать по 4 секунды дважды между каждым редактированием сообщения после первого.
Кроме того, весь метод имеет неправильный отступ дважды, и код внутри внутреннего l oop также имеет неправильный отступ дважды.
Я не уверен, предназначено ли это, но вы также спите time
секунд до того, как сообщение таймера будет даже отправлено.
time
уже должно быть int
, так что нет причина снова привести его к int
.
Вы можете просто использовать один l oop и уменьшить одну переменную за один сон, например:
while time > 0:
await asyncio.sleep(4)
time -= 4
await message.edit(content = str(time))
Для -=
см. Python документацию по расширенным операторам присваивания .
Возможно, вы также захотите изучить форматирование строки .
Также, это обычные циклы while
, а не "asyncio l oop", которые обычно ссылаются на событие loo пс .