Условный оператор IF
Проверка, что переменная не пуста
Чтобы убедиться, что переменная содержит значение (то есть она не None и не является пустой строкой), нужно проверить, что она НЕ равно пустой строке.
Правильная формула:
"#{value}" != ""
Это важно для проверки данных, например чтобы убедиться, что ответ был получен от внешнего API-запроса, прежде чем продолжить.
IF()
Описание
if(condition, value_if_true, value_if_false)
condition - триггер
value_if_true - значение, если True
value_if_false - значение, если False
Максимальная длина выражения: 2000 символов
Пример
Давайте разберём несколько примеров:
SILENCEDAYS_2 = if(SILENCEDAYS_2 == 1, 1, 0). В этом случае, если переменная SILENCEDAYS_2 существует и равна 1, её значение остаётся 1. Если она не существует или имеет другое значение, ей будет присвоено 0. Это полезно перед выполнением математических операций, чтобы защититься от пустых или неопределённых значений переменных.
ClientName = if(ClientName == 1, P1, if(ClientName == 2, P2, if(ClientName == 3, P3, 7))), где P1, P2, P3 — переменные.
Если ClientName равно 1, то будет присвоено значение P1; если ClientName равно 2, то будет присвоено значение P2; если ClientName равно 3, то будет присвоено значение P3; в противном случае будет присвоено значение 7.
Как видите, можно использовать вложенные конструкции if. Это полезно, когда вы хотите научить бота рассчитывать сумму заказа, где цена за единицу зависит от количества:
Order_Amount = round(if(Quantity >=100, if(Quantity >=200, if(Quantity >=300, if(Quantity >=400, if(Quantity >=500, if(Quantity >=1000, if(Quantity >=2000, if(Quantity >=3000, if(Quantity >=5000, 25*Quantity, 30*Quantity), 35*Quantity), 40*Quantity), 45*Quantity), 50*Quantity), 55*Quantity), 60*Quantity), 65*Quantity), "Не могу вычислить... Где-то в вашем заказе произошла ошибка. Пожалуйста, начните сначала.") * 100) / 100



Пример кода для копирования
SILENCEDAYS_2 = if(SILENCE_DAYS_2 == 1, 1, 0)
ClientName = if(ClientName == 1, Р1, if(ClientName == 2, Р2, if(ClientName == 3, Р3, 7)))
Order_Amount = round(if(Quantity >=100, if(Quantity >=200, if(Quantity >=300, if(Quantity >=400, if(Quantity >=500, if(Quantity >=1000, if(Quantity >=2000, if(Quantity >=3000, if(Quantity >=5000, 25*Quantity, 30*Quantity), 35*Quantity), 40*Quantity), 45*Quantity), 50*Количество), 55*Quantity), 60*Quantity), 65*Quantity), "Не могу вычислить... Где-то в вашем заказе произошла ошибка. Пожалуйста, начните сначала.") * 100) / 100Последнее обновление