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


Управляющие конструкции

Хотите научиться создавать мощные, "интеллектуальные", универсальные и полезные программы?

Тогда вам необходимо изучить три основные формы управления процессом выполнения программ. Согласно теории вычислительных систем, хороший язык программирования должен обеспечивать реализацию трех форм управления процессом выполнения программ.

1 - ПОСЛЕДОВАТЕЛЬНОСТЬ:  выполнение последовательных операторов - с этим мы уже познакомились в более ранних курсах. Все наши предыдущие программы представляют собой некоторую последовательность операторов.

2 - ВЫБОР:
     если такой и такой случай,
              тогда сделать это
     иначе сделать то.
3 - ПОВТОРЕНИЕ:
ПОКА (до тех пор, пока такой и такой случаи — делать это).

Вторая форма – ВЫБОР между различными способами действия, делает программы более «интеллектуальными», а также чрезвычайно увеличивает эффективность работы компьютеров.

Начнем с простого примера. 
Необходимо ввести с клавиатуры два вещественных числа и определить наибольшее из них.
Разберите данный пример.

Условный оператор (if)

В задаче про нахождение максимального числа из двух мы встретили новый оператор, который начинался со слова if. Этот оператор называется УСЛОВНЫЙ оператор.

Слово if переводится с английского языка как "если", а слово else - как "иначе". Если условие после слова if верно (истинно), то выполняются все команды (операторы), стоящие после двоеточия с новой строки и расположенные до слова else. Если условие неверно (ложно), то выполняются команды, стоящие после слова else:. 

В отличии от других языков программирования, в Python важны отступы (сдвиги) операторов относительно левой границы. Отступы влияют на работу программы. Если посмотреть внимательно, то слово if и слово else начинаются на одном уровне, а команды, которые выполняются, сдвинуты относительно этого уровня вправо на одно и тоже расстояние (рекомендуется использовать 4 пробела).
 
ОБЩИЙ ВИД УСЛОВНОГО ОПЕРАТОРА:
if условие: # заголовок с условием
    # блок «если» — операторы, которые выполняются,
    # если условие в заголовке истинно
else:
    # блок «иначе» — операторы, которые выполняются,
    # если условие в заголовке ложно

Надо запомнить!
1. if-else -  это один оператор!
2. После слова else никогда условие не ставится (условие ставится только после слова if).
     Блок "иначе" выполняется тогда, когда основное условие, указанное после слова if  - ложно, т.е. не выполняется.
3. Операторы, которые необходимо выполнить в каждой ветке (if или else), записываются с одинаковым отступом в 4 пробела. Отступы обязательны! 
4. Условие - это выражение, относительно которого можно сказать истинно оно (то есть выполняется) или ложно (то есть не выполняется).
В условии используются знаки логических отношений
  > , <                 больше, меньше,
  >=, <=              больше или равно, меньше или равно,
  ==                     равно,
  !=                     не равно.

Неполный условный оператор

Если в блоке «иначе» не надо ничего делать (например: «если в продаже есть мороженое, купи мороженое», а если нет ...), то весь блок «иначе» можно опустить и использовать сокращенную (неполную) форму условного оператора:
if условие:
   ... # что делать, если условие истинно
Операция выбора максимального из двух значений используется очень часто, поэтому в Python есть встроенная функция max, которую можно вызвать таким образом
M = max(A, B)
Есть и аналогичная функция для поиска минимального значения из двух или нескольких значений - min(). 

При выборе из двух значений в Python можно использовать и другую форму записи условного оператора, которая работает как и полная форма записи условного оператора.
M = a if a > b else b
Если необходимо выполнить несколько действий  при выполнении условия, то все действия записываются одно под другим на том же уровне сдвига:
if a > b:
  temp = a
  a = b
  b = temp
В этой программе если \(a>b\), то меняем значения переменных местами. Переменная temp - вспомогательная.
Обратите внимание на одинаковые сдвиги с левого края всех трех операторов. Это дает понять транслятору, что все три оператора выполняются при условии, что a>b.
Еще одна тонкость языка Python заключается в  операторе множественного присваивания, который облегчает обмен двух переменных. Его можно записать так:
a, b = b, a