Цель: научиться формально исполнять программы с условным оператором и сложным логическим условием, содержащим and/or/not
Что проверяет задание №6
Нужно уметь читать короткие программы, подставлять данные запусков и получать точный вывод для каждого, соблюдая порядок проверки if/else и правила логики.
Вариант с параметром требует подобрать целое А, чтобы число выводов YES/NO по всем запускам было ровно заданным, используя неравенства и «границы» по данным.
База: логика в Python
Операторы сравнения
Равенство/неравенство: ==, !=;
сравнения: <, <=, >, >=;
результат — булево значение True/False.
Логические связки
and — истина, только если истинны оба подусловия;
or — истина, если истинно хотя бы одно;
not — инверсия (not True = False, not False = True).
Приоритет
- Сначала скобки,
- затем
not,
- затем
and,
- затем
or.
Короткое замыкание
В выражении с and/or правая часть может не вычисляться, если результат уже понятен по левой части.
Таблицы истинности
| P |
Q |
P and Q |
P or Q |
| F |
F |
F |
F |
| F |
T |
F |
T |
| T |
F |
F |
T |
| T |
T |
T |
T |
Правила Де Моргана
not(P and Q) = (not P) or (not Q)
not(P or Q) = (not P) and (not Q)
Помните: в if/elif/else выполняется только первая истинная ветка сверху вниз, а else берётся, если все предыдущие условия ложны.
Синтаксис if/elif/else
x = int(input())
y = int(input())
if x > 10:
print("A")
elif (x > 5) and (y >= 0):
print("B")
else:
print("C")
Порядок такой: проверяется if; если ложь — проверяется следующий elif; при первой истине печать и завершение ветвления; если все ложны — выполняется else.