Сайт учителя информатики Нечай А. А.

 

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

Программирование на Python

В данном разделе Вам предлагается изучение языка программирования Python по видеоурокам, которые размещены на канале в YouTube

Python | Оператор условия If

На этом занятии поговорим об условном операторе.

Что это такое?

Представьте, что вам нужно вычислить модуль числа, хранящегося в переменной x.

Как это сделать?

Очевидно, нужно реализовать такой алгоритм. Какие операторы сравнения существуют в Python и как они работают?

Многие из них нам известны из школьного курса математики, это:

a > b
Истинно, если a больше b
a < b
Истинно, если a меньше b
a >= b
Истинно, если a больше или равно b
a <= b
Истинно, если a меньше или равно b
a == b
Истинно, если a равно b (обратите внимание, для сравнения используется двойной знак равенства)
a != b
Истинно, если a не равно b


Все эти операторы при сравнении возвращают булевое значение:
True – истина или False – ложь.

Например:

print(2 > 1)
print(2 == 1)
print(2 != 1)

Результат сравнения можно присвоить переменной, как и любое значение: result = 7 > 5 print(result)

Сравнение строк

Как вы видите, сравнение двух числовых значений выполняется вполне очевидным образом.

Но можно ли, например, сравнивать строки между собой?

Оказывается да, можно.

Чтобы определить, что одна строка больше другой, Python использует «алфавитный» или «лексикографический» порядок.

Другими словами, строки сравниваются посимвольно.

Например:

print('Я' > 'А' )
print( 'Кот' > 'Код' )
print( 'Сонный' > 'Сон' )

Алгоритм сравнения двух строк довольно прост:

Сначала сравниваются первые символы строк.


Если первый символ первой строки больше (меньше), чем первый символ второй, то первая строка больше (меньше) второй.


Если первые символы равны, то таким же образом сравниваются уже вторые символы строк.


Сравнение продолжается, пока не закончится одна из строк.

Если обе строки заканчиваются одновременно, и все их соответствующие символы равны между собой, то строки считаются равными.

Иначе, большей считается более длинная строка.


В примерах выше сравнение 'Я' > 'А' завершится на первом шаге, тогда как строки "Кот" и "Код" будут сравниваться посимвольно:
К равна К.
о равна о.
т больше чем д.

На этом сравнение заканчивается.

Первая строка больше.

Конструкция if – elif – else

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

И предположим, что хотим определить знак числа в переменной x.

Конечно, проверку можно записать вот так:
x = -5
if x < 0 : print("x отрицательное число")
if x >= 0 : print("x неотрицательное число")

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

Для таких ситуаций можно использовать ключевое слово else – иначе, чтобы ускорить процесс проверки: x = 5
if x < 0:
print("x отрицательное число")
else:
print("x неотрицательное число")

Теперь, у нас здесь всего одно условие. Если оно истинно, то выполнится первый print, а иначе – второй.

Такая программа будет работать быстрее. И обратите внимание на синтаксис записи функции print: перед ней необходимо записать хотя бы один пробел (обычно ставится 4 пробела или символ табуляции). Эти пробелы в Python означают блок кода, который выполняется по некоторому условию.

В данном случае блок кода состоит всего из одного оператора print. То же самое и для else.

В общем случае, синтаксис оператора if else следующий:
if(<выражение>): оператор 1
else: оператор 2
или
if(<выражение>):
оператор 1 else: оператор 2

Если же мы хотим по такому принципу выполнить три проверки: x > 0; x < 0; x == 0, то предыдущую программу можно записать так:
if x < 0:
print("x отрицательное число")
elif x > 0:
print("x положительное число")
else:
print("x равен 0")

И вообще таких конструкций
if – elif – elif –…– elif – else
может быть много. Далее, обратим внимание на такой факт: во всех наших примерах по условию шел один оператор – print. Но что если нужно выполнить несколько операторов по некоторому условию? Для этого их нужно записывать по такому синтаксису:
if <условие>:
оператор 1
оператор 1

оператор N