Drone X

Условия: логика полётного контроллера

3 блок(ов) теории · 10 заданий · 150 баллов

Логика полётного контроллера — это сравнения. == проверяет равенство (voltage == 3.5 — «напряжение ровно 3.5»), != — неравенство, а <, <=, >, >= — «строго меньше», «не больше» и так далее. Результат сравнения — значение типа bool: True (истина) или False (ложь); 3.4 < 3.5 — это True, и такой результат можно запомнить в переменную: link_ok = True. Не перепутайте == с одиночным =: одиночное равно присваивает значение, двойное — сравнивает. Сравнения соединяются в цепочку: 3.3 <= v < 3.5 — сокращение для «v не меньше 3.3 и меньше 3.5»; это ровно диапазон «предупреждение» у банки 1S с номиналом 3.7 В — ниже 3.5 В контроллер просит на посадку, ниже 3.3 В — сажает аварийно.

За выбор ветки отвечает if. После условия ставится двоеточие, а тело ветки пишется с отступом в 4 пробела — по отступу Python понимает, какие строки входят в ветку. elif («иначе если») проверяется, только когда все условия выше оказались ложными; else ловит все остальные случаи. Выполняется первая истинная ветка, остальные пропускаются, поэтому порядок веток важен: если проверить v < 3.5 раньше v < 3.3, разряженная банка 3.2 В получит статус low вместо critical — условие 3.2 < 3.5 истинно, и до строгой проверки дело не дойдёт. Правило полётника: ветки идут от самого строгого требования к самому общему. Для короткого выбора значения есть тернарник — та самая форма из модуля 1: status = "ok" if voltage >= 3.5 else "low".

Условия соединяются булевыми операторами. and истинен, когда истинны оба операнда; or — когда хотя бы один; not переворачивает значение. Приоритет: сначала not, затем and, затем or; сравнения же вычисляются раньше всех логических операторов, поэтому 3.4 < 3.5 and True — это (3.4 < 3.5) and True. «Связь есть и гарды надеты» — link_ok and guards; «связи нет» — not link_ok. Целое булево выражение — уже готовый результат: его можно вернуть из функции, запомнить в переменную, записать в журнал. Железо этого модуля — настоящее: пороги банки 1S 3.3/3.5 В, а лимиты полезной нагрузки «Модуля» — до 1200 г у квадро и до 2800 г у окто.

Задания

0/10 заданий · 0/150 баллов

1. Таблица истинности: and, or, not

10 балл(ов)

Контроллер вычисляет два выражения: True and not False и False or (not True). Выберите вариант, где верно назван результат каждого и объяснено, в каком порядке Python выполняет not, and и or.

1 / 10