Условные операторы
До сих пор каждая написанная нами программа выполнялась построчно по порядку. Вместо того чтобы выполнять каждую строку кода каждый раз при запуске программы, часто полезно создавать части программы, которые выполняются только в определенных ситуациях.
Например, следующий код проверяет, является ли пользователь совершеннолетним:
age = int(input("How old are you? "))
if age > 17:
print("You are of age!")
print("Here's a copy of GTA6 for you.")
print("Next customer, please!")Когда пользователю больше 17 лет, выполнение программы должно выглядеть так:
How old are you? 18 You are of age! Here's a copy of GTA6 for you. Next customer, please!
Если пользователю 17 или меньше, выводится только это:
How old are you? 16 Next customer, please!
Эти примеры показывают, что введенное значение влияет на то, какие части программы выполняются. Программа содержит условный оператор с блоком кода, который выполняется только если условие в операторе истинно.
В условном операторе за ключевым словом if следует условие, например сравнение двух значений. Блок кода после этой заголовочной строки выполняется только если условие истинно.
Обратите внимание на двоеточие после заголовка if. В следующем коде двоеточия нет:
age = 10
# no colon at the end of the following line
if age > 17
print("You are of age.")При выполнении это вызывает ошибку:
File "program.py", line 3
if age > 17
^
SyntaxError: invalid syntax
Операторы сравнения
Очень часто условия состоят из сравнения двух значений. Вот таблица с самыми распространенными операторами сравнения, используемыми в Python:
| Оператор | Назначение | Пример |
|---|---|---|
== | Равно | a == b |
!= | Не равно | a != b |
> | Больше | a > b |
>= | Больше или равно | a >= b |
< | Меньше | a < b |
<= | Меньше или равно | a <= b |
Посмотрим на программу, которая выводит разные сообщения в зависимости от того, является введенное пользователем число отрицательным, положительным или равным нулю:
number = int(input("Please type in a number: "))
if number < 0:
print("The number is negative.")
if number > 0:
print("The number is positive.")
if number == 0:
print("The number is zero.")Примеры того, как программа работает с тремя разными вводами:
Please type in a number: 15 The number is positive.
Please type in a number: -18 The number is negative.
Please type in a number: 0 The number is zero.
Отступы
Python распознает, что блок кода является частью условного оператора, если каждая строка кода в блоке имеет одинаковый отступ. То есть в начале каждой строки кода внутри блока должно быть немного пробельных символов. У каждой строки должно быть одинаковое количество пробелов.
Например:
password = input("Please type in a password: ")
if password == "kittycat":
print("You knew the password!")
print("You must be either the intended user...")
print("...or quite an accomplished hacker.")
print("The program has finished its execution. Thanks and bye!")Вы можете использовать клавишу Tab, сокращение от tabulator, чтобы вставить заданное количество пробелов.
Многие текстовые редакторы автоматически делают отступ на следующей строке, когда клавиша Enter нажимается после двоеточия. Когда нужно закончить блок с отступом, можно использовать клавишу Backspace, чтобы вернуться к началу строки.
Булевы значения и булевы выражения
Любое условие, используемое в условном операторе, дает истинностное значение, то есть либо истину, либо ложь. Например, условие a < 5 истинно, если a меньше 5, и ложно, если a равно 5 или больше 5.
Такие значения часто называют булевыми значениями, по имени английского математика Джорджа Буля. В Python они представлены типом данных bool. Переменные типа bool могут иметь только два значения: True или False.
Любой фрагмент кода, результатом которого является булево значение, называется булевым выражением. Например, условие в условном операторе всегда является булевым выражением, а слова условие и булево выражение часто можно использовать взаимозаменяемо.
Результат булева выражения можно сохранить в переменной точно так же, как результат любого числового вычисления:
a = 3
condition = a < 5
print(condition)
if condition:
print("a is less than 5")True a is less than 5
Ключевые слова Python True и False также можно использовать напрямую. В следующем примере команда print выполняется каждый раз, потому что значение условия равно True:
condition = True
if condition:
print("This is printed every time.")This is printed every time.
Такая программа не очень полезна, но позже в ходе курса вы увидите примеры, где булевы переменные оказываются очень удобными.
Ответьте на короткий опросник по материалам этой недели. Опросник стоит один балл за упражнение.
Текущие баллы можно посмотреть в синем индикаторе в правом нижнем углу страницы.