Алгоритмы с ветвлением
Условный оператор if/elif/else в Python. Полное и неполное ветвление. Вложенные условия. Логические операторы and, or, not. Операции сравнения.
Алгоритмы с ветвлением
1. Условный оператор if
В программировании ветвление реализуется с помощью условного оператора. В Python используется ключевое слово if.
Синтаксис
if условие:
блок_кода
Блок кода выделяется отступами (4 пробела). Все строки блока должны иметь одинаковый отступ.
Условие — это выражение, которое преобразуется в логический тип (bool). Если результат True — блок выполняется, если False — пропускается.
Пример (неполное ветвление)
age = int(input("Введите возраст: "))
if age >= 18:
print("Доступ разрешён")
2. Полное ветвление: if-else
if условие:
блок_если_истина
else:
блок_если_ложь
Пример
n = int(input("Введите число: "))
if n % 2 == 0:
print("Чётное")
else:
print("Нечётное")
3. Множественное ветвление: if-elif-else
if условие_1:
блок_1
elif условие_2:
блок_2
elif условие_3:
блок_3
else:
блок_иначе
Проверка происходит последовательно: выполняется блок, соответствующий первому истинному условию. Блок else необязателен и выполняется, когда все условия ложны.
Пример
score = int(input("Введите балл: "))
if score >= 90:
grade = "5 (отлично)"
elif score >= 75:
grade = "4 (хорошо)"
elif score >= 60:
grade = "3 (удовлетворительно)"
else:
grade = "2 (неудовлетворительно)"
print(f"Оценка: {grade}")
4. Операции сравнения
| Оператор | Значение | Пример |
|---|---|---|
== | Равно | x == 5 |
!= | Не равно | x != 0 |
< | Меньше | x < 10 |
> | Больше | x > 0 |
<= | Меньше или равно | x <= 100 |
>= | Больше или равно | x >= 18 |
Важно: не путать = (присваивание) и == (сравнение)!
Сравнивать можно не только числа, но и строки (лексикографически): "abc" < "abd" → True.
5. Логические операторы
Для составления сложных условий:
if x > 0 and x < 10: # оба условия истинны
print("Однозначное положительное")
if x < 0 or x > 100: # хотя бы одно истинно
print("Вне диапазона")
if not (x % 2 == 0): # инверсия
print("Нечётное")
Таблицы истинности (повторение)
| A | B | A and B | A or B | not A |
|---|---|---|---|---|
| False | False | False | False | True |
| False | True | False | True | True |
| True | False | False | True | False |
| True | True | True | True | False |
Приоритет логических операторов
notandor
Скобки используются для изменения порядка: (a > 0) and (b > 0 or c > 0).
6. Вложенные условия
Условный оператор может находиться внутри другого условного оператора.
x = int(input("x = "))
y = int(input("y = "))
if x > 0:
if y > 0:
print("Первая четверть")
else:
print("Четвёртая четверть")
else:
if y > 0:
print("Вторая четверть")
else:
print("Третья четверть")
7. Тернарный условный оператор
Краткая форма записи для простых условий:
result = значение_если_истина if условие else значение_если_ложь
Пример:
parity = "чётное" if n % 2 == 0 else "нечётное"
maximum = a if a > b else b
Примеры вопросов из тренажёра
-
Q: Какой оператор проверяет условие и выполняет блок кода только если условие истинно?
A: верный ответ — if
Объяснение: if — условный оператор. Если условие True, выполняется блок после двоеточия.
-
Q: Как называется конструкция, когда внутри if находится другой if?
A: верный ответ — Вложенное условие
Объяснение: Вложенное условие — if внутри другого if. Позволяет проверять дополнительные условия.
-
Q: Что выведет: x=5; if x>10: print('A') elif x>3: print('B') else: print('C')?
A: верный ответ — B
Объяснение: x=5: 5>10 — ложь, 5>3 — истина, печатается 'B'. Блок else пропускается.
-
Q: Как работает оператор and?
A: верный ответ — True только если оба True
Объяснение: and возвращает True только когда оба операнда истинны.
-
Q: Что такое неполное ветвление?
A: верный ответ — if без else
Объяснение: Неполное ветвление — if без else. Если условие ложно, ничего не выполняется.