Читаем Изучаем Python онлайн бесплатно
Условие (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; если оба условия истинны, то и все выражение тоже истинно. Если хотя бы одно (или оба) условия ложны, то и результат всего выражения равен 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 тоже позволяет проверить несколько условий, но результат общей проверки является истинным в том случае, когда истинно хотя бы одно или оба условия. Ложный результат достигается только в том случае, если оба отдельных условия ложны.
Вернемся к примеру с возрастом, но на этот раз проверим, что хотя бы одна из двух переменных больше 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.")




