Условный оператор в Python

Назад в начало

Условный оператор выполняет некоторое действие, если указанное условие истинно (равно True).

# Обратите внимание на отступ в четыре (4!) пробела
# или одну табуляцию (кнопочка TAB)
if True: # Обязательное двоеточие перед блоком кода
    print('Условие истинно, поэтому я напечатаюсь')

# Вывод
>> Условие истинно, поэтому я напечатаюсь

В условии любой тип данных неявно приводится к bool. Пустая строка и ноль равны False.

print(bool(1)) # -> True
print(bool(0)) # -> False
print(bool(10.2)) # -> True
print(bool('')) # -> False
print(bool('Hello')) # -> True

Если условие ложно, то код, находящийся под оператором if не выполнится.

if 0: # Обязательное двоеточие перед блоком кода
    print('Я никогда не напечатаюсь :(')

Если условие в if ложно, то выполнится оператор под оператором else.

if 0:
    print('Я никогда не напечатаюсь :(')
else:
    print('Оператор else вступает в игру')

# Вывод
>> Оператор else вступает в игру

Иногда двух вариантов недостаточно, для этого существует оператор elif, а для все остального есть...

age = int(input())
if age < 10:
    print('Ваш возраст - это одна цифра :)')
elif age < 15:
    print('Удачи с геометрией :):):)')
else:
    print('Совсем взрослый уже :(')

Если условие в операторе if ложно, то интерпретатор проверяет истинность условия операторов elif, всех по очереди. Если все условия ложны, то выполнится оператор else.

Примеры

1. Четное-нечетное

# Выведите строку 'четное', если введенное число четно, и строку 'нечетное', если число нечетно.
a = int(input())
if a % 2 == 0:
    print('четное')
else:
    print('нечетное')

# Ввод
>> 10
# Вывод
>> четное

# Ввод
>> 11
# Вывод
>> нечетное

2. Много elif'ов

# Если в вашем коде больше трех elif значит что-то не так и стоит придумать новый алгоритм.
# Это сугубо академический пример, так писать не стоит.
a = int(input('Введите число от одного до 1 до 100'))
if a < 10:
    print('Ваше число меньше 10')
elif a < 20:
    print('Ваше число меньше двадцатки')
elif a < 30:
    print('30 - это потолок')
elif a < 40:
    print('Ваше число меньше 40')
elif a < 50:
    print('Много, но не больше полтинника')
elif a < 60:
    print('Число меньше, чем шесть*десять')
elif a < 70:
    print('Ваше число расположено в восьмом десятке')
elif a < 80:
    print('Ваше число меньше 80')
elif a < 90:
    print('Ваше число находится в 9 десятке')
elif a < 100:
    print('Сотня больше вашего числа')
else:
    print('Хитро, но меня не обманешь, число слишком большое')

# Ввод
>> 11
# Вывод
>> Ваше число меньше двадцатки

# Ввод
>> 91
# Вывод
>> Сотня больше вашего числа

# Ввод
>> 58
# Вывод
>> Число меньше, чем шесть*десять

3. Белая или черная

# Пользователь вводит два числа: координаты шахматной клетки.
# Выведите YES, если клетка белая, и NO, если - черная.

x = int(input('Введите координату x: '))
y = int(input('Введите координату y: '))
# Идея такая: если четность координат совпадает,
# то это черная клетка, а если - нет, то белая.

if (x + y) % 2 == 1:
    print('YES')
else:
    print('NO')

# Ввод:
>> 1
>> 1
# Вывод:
>> NO

# Ввод:
>> 1
>> 1
# Вывод:
>> NO

4. Белая или черная (случайные координаты)

# Та же задача, но со случайными числами.
# Координаты шахматной клетки выбираются случайным образом
# Выведите YES, если клетка белая, и NO, если - черная.

from random import randint # импортирование функции randint
x = randint(1,8) # функция randint вернет случайное число от 1 до 8
y = randint(1,8)
print(x, y) # вывод пары случайных чисел

if (x + y) % 2 == 1:
    print('YES')
else:
    print('NO')

Решение задач

1. Меньшее из двух

Пользователь вводит два целых числа. Выведите меньшее из них.

2. Четырехзначное?

Пользователь вводит целое число. Выведите YES, если это число является четырехзначным, и NO в противном случае.

3. Треугольник?

Треугольник существует только тогда, когда сумма любых двух его сторон больше третьей. Дано a, b, c - стороны предполагаемого треугольника. Требуется сравнить длину каждого отрезка-стороны с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольника с такими сторонами не существует.

# Ввод:
>> 3
>> 4
>> 5
# Вывод:
>> YES

# Ввод:
>> 3
>> 10
>> 5
# Вывод:
>> NO

4. Время суток

Пользователь вводит время в часах. Если введенное число находится между 5 и 11 часами включительно, выведите строку 'Утро'. Если число лежит в диапазоне от 12 до 17 часов включительно, выведите строку 'День'. Если число находится между 18 и 22, то выведите 'Вечер'. В случае поздней ночи (от 23 до 4 включительно) выведите 'Ночь'. В остальных случаях выведите строку 'Ошибка'.

# Ввод:
>> 3
# Вывод:
>> Ночь

# Ввод:
>> 6
# Вывод:
>> Утро

# Ввод:
>> 13
# Вывод:
>> День

# Ввод:
>> 2020
# Вывод:
>> Ошибка

5. День недели

Пользователь вводит номер дня недели. Выведите строку 'Выходные', если введенное число равно 6 или 7. В случае, если число лежит в диапазоне от 1 до 5 включительно, выведите строку 'Будни'.

# Ввод:
>> 3
# Вывод:
>> Будни

# Ввод:
>> 6
# Вывод:
>> Выходные

6. Описание числа

Пользователь вводит целое число. Выведите его строку-описание вида "отрицательное четное число", "ноль", "положительное нечетное число", например, численным описанием числа 190 является строка "положительное четное число".

# Ввод:
>> 1
# Вывод:
>> положительное нечетное число

# Ввод:
>> 06
# Вывод:
>> отрицательное четное число

# Ввод:
>> 0
# Вывод:
>> ноль

# Ввод:
>> 2
# Вывод:
>> положительное четное число

7. Конь (финальный босс)

Шахматный конь ходит буквой "Г" - на две клетки по вертикали в любом направлении и на одну клетку по горизонтали, или наоборот. Даны две различные клетки шахматной доски, определите, может ли конь попасть с первой клетки на вторую одним ходом. В случае, если хотя бы одно из введенных чисел не лежит в диапазоне от 1 до 8, выведите строку "Ошибка!".

# Ввод:
>> 1 # координата x1
>> 1 # координата y1
>> 2 # координата x2
>> 2 # координата y2
# Вывод:
>> NO

# Ввод:
>> 1 # координата x1
>> 1 # координата y1
>> 3 # координата x2
>> 2 # координата y2
# Вывод:
>> YES

# Ввод:
>> 3 # координата x1
>> 8 # координата y1
>> 2 # координата x2
>> 6 # координата y2
# Вывод:
>> YES

# Ввод:
>> 3 # координата x1
>> 4 # координата y1
>> 5 # координата x2
>> 6 # координата y2
# Вывод:
>> YES