toppings.py
requested_topping = 'mushrooms'
if requested_topping != 'anchovies':
print("Hold the anchovies!")
86 Глава 5 • Команды if
Строка сравнивает значение
requested_topping
со значением
'anchovies'
. Если
эти два значения не равны, Python возвращает
True
и выполняет код после команды
if
. Если два значения равны, Python возвращает
False
и не выполняет код после
команды
if
. Так как значение
requested_topping
отлично от
'anchovies'
, команда
print
будет выполнена:
Hold the anchovies!
В большинстве условных выражений, которые вы будете использовать в програм-
мах, будет проверяться равенство, но иногда проверка неравенства оказывается
более эффективной.
Сравнения чисел
Проверка числовых значений достаточно прямолинейна. Например, следующий
код проверяет, что переменная
age
равна 18:
>>> age = 18
>>> age == 18
True
Также можно проверить условие неравенства двух чисел. Например, следующий
код выводит сообщение, если значение переменной
answer
отлично от ожидаемого:
magic_ number.py
answer = 17
if answer != 42:
print("That is not the correct answer. Please try again!")
Условие выполняется, потому что значение
answer
(17) не равно 42. Так как
условие истинно, блок с отступом выполняется:
That is not the correct answer. Please try again!
В условные команды также можно включать всевозможные математические срав-
нения: меньше, меньше или равно, больше, больше или равно:
>>> age = 19
>>> age < 21
True
>>> age <= 21
True
>>> age > 21
False
>>> age >= 21
False
Все эти математические сравнения могут использоваться в условиях
if
, что повы-
шает точность формулировки интересующих вас условий.
Проверка нескольких условий
Иногда требуется проверить несколько условий одновременно. Например, в не-
которых случаях для выполнения действия бывает нужно, чтобы истинными были
Проверка условий 87
сразу два условия; в других случаях достаточно, чтобы истинным было хотя бы
одно из двух условий. Ключевые слова
and
и
or
помогут вам в подобных ситуациях.
Использование and для проверки нескольких условий
Чтобы проверить, что два условия истинны одновременно, объедините их ключевым
словом
and
; если оба условия истинны, то и все выражение тоже истинно. Если хотя
бы одно (или оба) условия ложны, то и результат всего выражения равен
False
.
Например, чтобы убедиться в том, что каждому из двух людей больше 21 года, ис-
пользуйте следующую проверку:
>>> age_0 = 22
>>> age_1 = 18
>>> age_0 >= 21 and age_1 >= 21
False
>>> age_1 = 22
>>> age_0 >= 21 and age_1 >= 21
True
В точке определяются две переменные,
age_0
и
age_1
. В точке программа про-
веряет, что оба значения равны 21 и более. Левое условие выполняется, а правое
нет, поэтому все условное выражение дает результат
False
. В точке переменной
age_1
присваивается значение 22. Теперь значение
age_1
больше 21; обе проверки
проходят, а все условное выражение дает истинный результат.
Чтобы код лучше читался, отдельные условия можно заключить в круглые скобки,
но это не обязательно. С круглыми скобками проверка может выглядеть так:
(age_0 >= 21) and (age_1 >= 21)
Использование or для проверки нескольких условий
Ключевое слово
or
тоже позволяет проверить несколько условий, но результат
общей проверки является истинным в том случае, когда истинно хотя бы одно
или оба условия. Ложный результат достигается только в том случае, если оба от-
дельных условия ложны.
Вернемся к примеру с возрастом, но на этот раз проверим, что хотя бы одна из двух
переменных больше 21:
>>> age_0 = 22
>>> age_1 = 18
>>> age_0 >= 21 or age_1 >= 21
True
>>> age_0 = 18
>>> age_0 >= 21 or age_1 >= 21
False
Как и в предыдущем случае, в точке определяются две переменные. Так как ус-
ловие для
age_0
в точке истинно, все выражение также дает истинный результат.
Затем значение
age_0
уменьшается до 18. При проверке оба условия оказываются
ложными, и общий результат всего выражения тоже ложен.
88 Глава 5 • Команды if
Проверка вхождения значений в список
Иногда бывает важно проверить, содержит ли список некоторое значение, пре-
жде чем выполнять действие. Например, перед завершением регистрации нового
пользователя на сайте можно проверить, существует ли его имя в списке имен
действующих пользователей, или в картографическом проекте определить, входит
ли передаваемое место в список известных мест на карте.
Чтобы узнать, присутствует ли заданное значение в списке, воспользуйтесь клю-
чевым словом
in
. Допустим, вы пишете программу для пиццерии. Вы создали
список дополнений к пицце, заказанных клиентом, и хотите проверить, входят ли
некоторые дополнения в этот список.
>>> requested_toppings = ['mushrooms', 'onions', 'pineapple']
>>> 'mushrooms' in requested_toppings
True
>>> 'pepperoni' in requested_toppings
False
В точках и ключевое слово
in
приказывает Python проверить, входят ли зна-
чения
'mushrooms'
и
'pepperoni'
в список
requested_toppings
. Это весьма полезно,
потому что вы можете создать список значений, критичных для вашей программы,
а затем легко проверить, присутствует ли проверяемое значение в списке.
Проверка отсутствия значения в списке
В других случаях программа должна убедиться в том, что значение не входит
в список. Для этого используется ключевое слово
not
. Для примера рассмотрим
список пользователей, которым запрещено писать комментарии на форуме. Прежде
чем разрешить пользователю отправку комментария, можно проверить, не был ли
пользователь включен в «черный список»:
banned_users.py
banned_users = ['andrew', 'carolina', 'david']
user = 'marie'
if user not in banned_users:
print(user.title() + ", you can post a response if you wish.")
Строка достаточно четко читается: если пользователь не входит в «черный
список»
banned_users
, то Python возвращает
True
и выполняет строку с отступом.
Пользователь
'marie'
в этот список не входит, поэтому программа выводит соот-
ветствующее сообщение:
Marie, you can post a response if you wish.
Логические выражения
В процессе изучения программирования вы рано или поздно услышите термин
«логическое выражение». По сути это всего лишь другое название для проверки
Команды if 89
условия. Результат логического выражения равен
True
или
False
, как и результат
условного выражения после его вычисления.
Логические выражения часто используются для проверки некоторых условий —
например, запущена ли компьютерная игра или разрешено ли пользователю редак-
тирование некоторой информации на сайте:
game_active = True
can_edit = False
Логические выражения предоставляют эффективные средства для контроля со-
стояния программы или определенного условия, играющего важную роль в вашей
программе.
Достарыңызбен бөлісу: |