Команда else: условные конструкции и циклы в Python
Конструкция if-else позволяет выполнять разные блоки кода в зависимости от истинности условия. В языке Python ключевое слово else может использоваться не только в условном операторе if, но и в циклах for и while. Ниже рассмотрены основные варианты применения.
Основная конструкция if-else
Простейшая форма условного оператора выглядит так:
age = 18
if age >= 18:
print('Доступ разрешен')
else:
print('Доступ запрещен')задания на if else python (задания на условный оператор if-else в python)
Доступ разрешен
условные операторы python примеры (условные операторы в python с примерами)
После if записывается условие, затем двоеточие. В теле if и else отступы обязательны (4 пробела). Если условие истинно, выполняется блок if, иначе блок else.
Типичные ошибки: забыто двоеточие после условия, неверные отступы, путаница с elif. Без else программа ничего не делает при ложном условии, что может привести к неопределённому поведению.
Варианты использования else
Как проверить несколько условий последовательно?
Для этого применяется конструкция if-elif-else:
score = 85
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
else:
grade = 'D'
print(grade)
условия на языке python (условные конструкции на языке python)
B
Python команда else (конструкция if-else в python)
Только одна ветвь будет выполнена, порядок условий важен. Если написать elif score >= 70 первым, то при score=85 получим grade 'C'.
Проблема: забыто двоеточие после elif, неправильный порядок блоков.
Как создать сложную логику с условиями внутри условий?
Вложенные if-else позволяют реализовать множественные проверки:
num = 15
if num > 0:
if num % 2 == 0:
print('Положительное четное')
else:
print('Положительное нечетное')
else:
print('Отрицательное или ноль')Print if else python (условный оператор в print)
Положительное нечетное
Ошибка: излишняя вложенность снижает читаемость. Лучше объединить условия через and.
Как записать простое условие в одну строку?
Тернарный оператор (условное выражение) сокращает запись:
a = 5
b = 10
max_val = a if a > b else b
print(max_val)
10
Выражение X if условие else Y возвращает X при истинности, иначе Y.
Недостаток: при вложенных тернарниках код становится нечитаемым. Рекомендуется для простых случаев.
Как выполнить действие, если цикл завершился без break?
Блок else у цикла for (или while) выполняется только если не было прерывания break:
numbers = [2, 4, 6, 8]
target = 5
for n in numbers:
if n == target:
print('Найдено')
break
else:
print('Не найдено')
Не найдено
Ошибка: путаница с else для if. Важно помнить, что else у цикла относится к циклу, а не к последнему if.
Как применить else в цикле while?
Аналогично for, else выполняется при нормальном завершении while:
count = 0
while count < 3:
print(count)
count += 1
if count == 2:
break
else:
print('Цикл завершён без break')
0 1
Так как встретился break при count=2, блок else не выполняется.
Проблема: неожиданное выполнение else, если break срабатывает после проверки условия. Нужно тщательно проектировать логику.
Расширенные примеры использования else
Проверка високосного года с if-elif-else
year = 2024
if year % 400 == 0:
is_leap = True
elif year % 100 == 0:
is_leap = False
elif year % 4 == 0:
is_leap = True
else:
is_leap = False
print(f'{year} високосный? {is_leap}')
2024 високосный? True
Порядок условий критичен: сначала проверяется деление на 400, затем на 100, потом на 4. Без else ошибочно будет определён невисокосный год.
Поиск простых чисел с else в цикле for
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
else:
return True
for num in range(10, 20):
if is_prime(num):
print(f'{num} простое')
11 простое 13 простое 17 простое 19 простое
Блок else в цикле for выполняется, если ни один делитель не найден, что эквивалентно return True. Это избавляет от дополнительного флага.
Вложенный тернарный оператор для выбора сообщения
temperature = 25
weather = 'жарко' if temperature > 30 else ('тепло' if temperature > 20 else 'холодно')
print(weather)
тепло
Хотя такая запись компактна, при трёх и более условиях лучше использовать if-elif-else для читаемости.
Таймер с while и else
import time
seconds = 5
start = time.time()
while time.time() - start < seconds:
print('Ожидание...')
time.sleep(1)
else:
print('Таймер сработал')
Ожидание... Ожидание... Ожидание... Ожидание... Ожидание... Таймер сработал
Блок else выполняется только если цикл завершился естественным образом (без break). Если внутри цикла добавить break при определённом событии, else не выполнится.
Комбинация условий с and/or в if-else
x = 10
y = -5
if x > 0 and y > 0:
print('Оба положительны')
elif x > 0 or y > 0:
print('Хотя бы одно положительное')
else:
print('Оба отрицательны')
Хотя бы одно положительное
Логические операторы позволяют строить сложные условия. Ошибка: приоритет операторов – and выполняется раньше or. Для явности используют скобки.