Условие (1) выполняется, потому что значение 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, что повышает точность формулировки интересующих вас условий.
Проверка нескольких условий
Иногда требуется проверить несколько условий одновременно. Например, в некоторых случаях для выполнения действия бывает нужно, чтобы истинными были сразу два условия; в других случаях достаточно, чтобы истинным было хотя бы одно из двух условий. Ключевые слова and и or помогут вам в подобных ситуациях.
Использование and для проверки нескольких условий
Чтобы проверить, что два условия истинны одновременно, объедините их ключевым словом and; если оба условия истинны, то и все выражение тоже истинно. Если хотя бы одно (или оба) условия ложны, то и результат всего выражения равен False.
Например, чтобы убедиться в том, что каждому из двух людей больше 21 года, используйте следующую проверку:
(1) >>> age_0 = 22
>>> age_1 = 18
(2)>>> age_0 >= 21 and age_1 >= 21
False
(3) >>> age_1 = 22
>>> age_0 >= 21 and age_1 >= 21
True
В точке (1) определяются две переменные, age_0 и age_1. В точке (2) программа проверяет, что оба значения равны 21 и более. Левое условие выполняется, а правое нет, поэтому все условное выражение дает результат False. В точке (3) переменной age_1 присваивается значение 22. Теперь значение age_1 больше 21; обе проверки проходят, а все условное выражение дает истинный результат.
Чтобы код лучше читался, отдельные условия можно заключить в круглые скобки, но это не обязательно. С круглыми скобками проверка может выглядеть так:
(age_0 >= 21) and (age_1 >= 21)
Использование or для проверки нескольких условий
Ключевое слово or тоже позволяет проверить несколько условий, но результат общей проверки является истинным в том случае, когда истинно хотя бы одно или оба условия. Ложный результат достигается только в том случае, если оба отдельных условия ложны.
Вернемся к примеру с возрастом, но на этот раз проверим, что хотя бы одна из двух переменных больше 21:
(1) >>> age_0 = 22
>>> age_1 = 18
(2)>>> age_0 >= 21 or age_1 >= 21
True
(3)>>> age_0 = 18
>>> age_0 >= 21 or age_1 >= 21
False
Как и в предыдущем случае, в точке (1) определяются две переменные. Так как условие для age_0 в точке (2) истинно, все выражение также дает истинный результат. Затем значение age_0 уменьшается до 18. При проверке (3) оба условия оказываются ложными, и общий результат всего выражения тоже ложен.
Проверка вхождения значений в список
Иногда бывает важно проверить, содержит ли список некоторое значение, прежде чем выполнять действие. Например, перед завершением регистрации нового пользователя на сайте можно проверить, существует ли его имя в списке имен действующих пользователей, или в картографическом проекте определить, входит ли передаваемое место в список известных мест на карте.
Чтобы узнать, присутствует ли заданное значение в списке, воспользуйтесь ключевым словом in. Допустим, вы пишете программу для пиццерии. Вы создали список дополнений к пицце, заказанных клиентом, и хотите проверить, входят ли некоторые дополнения в этот список.
>>> requested_toppings = ['mushrooms', 'onions', 'pineapple']
(1) >>> 'mushrooms' in requested_toppings
True
(2)>>> 'pepperoni' in requested_toppings
False
В точках (1) и (2) ключевое слово in приказывает Python проверить, входят ли значения 'mushrooms' и 'pepperoni' в список requested_toppings. Это весьма полезно, потому что вы можете создать список значений, критичных для вашей программы, а затем легко проверить, присутствует ли проверяемое значение в списке.
Проверка отсутствия значения в списке
В других случаях программа должна убедиться в том, что значение не входит в список. Для этого используется ключевое слово not. Для примера рассмотрим список пользователей, которым запрещено писать комментарии на форуме. Прежде чем разрешить пользователю отправку комментария, можно проверить, не был ли пользователь включен в «черный список»:
banned_users.py
banned_users = ['andrew', 'carolina', 'david']
user = 'marie'
(1) if user not in banned_users:
. .print(user.title() + ", you can post a response if you wish.")