Условные инструкции

Условная инструкция if
В программах возможны ситуации, когда требуется выполнение не строго определенного действия, а одного из двух или более вариантов действия, при этом выбор того или иного варианта зависит от некоторого условия. Возможны также ситуации, когда некоторое действие должно выполняться не всегда, а только при определенном условии.
Пример: Дано целое число, если оно меньше нуля, то вывести сообщение "Внимание! число меньше нуля!"
Решение: Начальная часть программы решения задачи:
n = int(input('Введите целое число '))
# Далее возможен один вариант действий (вывод сообщения), если n < 0:
# print('Внимание! число меньше нуля!')
Необходимо использовать инструкцию if в следующей форме:

if < выражение условие 1>:
<блок инструкций 1>

Такой вариант инструкции называется неполным. Тогда решение нашей задачи будет выглядеть следующим образом:
n = int(input('Введите целое число: '))
if n < 0:
    print('Внимение! число меньше нуля!')
Два варианта действий
Пример: Дано целое число. Определить, является ли оно четным.
Решение: Начальная часть программы решения задачи:
n = int(input('Введите целое число '))
# Далее возможны два варианта действий (два варианта инструкции print() вывода информации на экран):
# 1) print('Это число четное')
# 2) print('Это число нечетное')
Необходимо использовать инструкцию if в следующей форме:

if < выражение условие 1>:
<блок инструкций 1>
else <выражение условие 2>:
<блок инструкций 2>

Такой вариант инструкции называется полным. Тогда решение нашей задачи будет выглядеть следующим образом:
n = int(input('Введите целое число: '))
if n % 2 == 0:
    print('Это число четное')
else:
    print('Это число нечетное')
Три и более варианта действий
Пример: Мы создаем игру, где наш персонаж может получать урон здоровью и погибнуть, вылечиться или получать нейтральный эффект.

Решение: Начальная часть программы решения задачи:
health = 100
effect = int(input())
health += effect 
# Далее возможны разные варианты действий:
# 1) print('-== ВЫ ПОГИБЛИ! ==-')
# 2) print('-== Вы получаете урон ==-')
# 3) print('-== Вы излечились ==-')
# 4) print('-== Вы получили нейтральный эффект ==-')
Необходимо использовать инструкцию if в следующей форме:

if < выражение условие 1>:
<блок инструкций 1>
elif <выражение условие 2>:
<блок инструкций 2>


elif <выражение условие N>:
<блок инструкций N>
else: <блок инструкций else>

Описание:

  • Инструкция может содержать ноль или более блоков elif;
  • Заключительный блок else также не обязателен;
  • В Python отсутствует инструкция switch или case, которая позволяет выбирать производимое действие на основе значения переменной. Вместо этого используется множественное ветвление elif
Тогда решение нашей задачи будет выглядеть следующим образом:
health = 100
effect = int(input())
health += effect 
if effect < 0 and health <= 0:
    print('-== ВЫ ПОГИБЛИ! ==-')
elif effect < 0 and health > 0:
    print('-== Вы получаете урон! ==-')
elif effect > 0:
    print('-== Вы излечились! ==-')
else:
    print('-== Вы получили нейтральный эффект ==-')
Тернарный оператор
Реализует полную условную инструкцию в компактнов виде, запись осуществляется в одну строку

< выражение 1 > if < выражение условие> else < выражение 2 >

Чаще всего упортебляется в виде:

< переменная > = < выражение 1 > if < выражение условие> else < выражение 2 >

Эта инструкция эквивалентна записи:

if < выражение условие 1>:
< переменная > = < выражение 1 >
else: < переменная > = < выражение 2 >

Рассмотрим на предыдущий пример задачи: определим четность числа:
n = int(input('Введите целое число: '))
value_1 = 'Это число четное'
value_2 = 'Это число нечетное'
result = value_1 if n % 2 == 0 else value_2
print(result)

# Вариант с использованием полной инструкции if для стравнения
# if n % 2 == 0:
#     print('Это число четное')
# else:
#     print('Это число нечетное')
Всегда можно написать более кратко, но следующий пример демонстрирует плохо читаемый код, т.к. в одну строку записано очень много операторов. Не стоит жертвовать читаемостью, помните философию Python!
print('Это число четное' if int(input('Введите целое число:')) % 2 == 0 else 'Это число нечетное')
Вот этот вариант более читаем:
n = int(input('Введите целое число:'))
print('Это число четное' if n % 2 == 0 else 'Это число нечетное')