if ans.reply_message is not None or ans.fwd_messages is not None:
if ans.reply_message not in [None, []] or ans.fwd_messages is not None:
#или
if ans.reply_message is not None and ans.reply_message != [] or ans.fwd_messages is not None:
name_bot - это все префиксы бота, на которые отвечает бот (обязательно маленькими)
Дальше мы сообщение приводим к маленькому регистру .lower()
Пример в коде это:
received_message.lower()Сообщение с маленьким регистром мы превращаем в список слов .split()
Пример в коде это:
received_message.lower().split()Дальше из этого списка мы берём первый элемент. Первый элемент в списке в python является 0, второй 1 и т.д..
Пример в коде это:
received_message.lower().split()[0]В данный момент времени если брать команду "! позови Алексея", то первым элементом будет являться "!"
Если взять просто: "позови Алексея", то первый элемент "позови"
Для чего нужен цикл for:
Так как сообщение у нас имеет вид "! позови Алексея" значит нужно переписать либо конструкцию if..elif.., либо убрать имя бота из сообщения. Как раз таки цикл for нужен для того, чтобы убрать имя бота от туда. Он проходит по всем элементам, которые находятся в name_bot и с помощью replace("name", "") заменяет имя бота на пустоту ""