Строка (1) достаточно четко читается: если пользователь не входит в «черный список» banned_users, то Python возвращает True и выполняет строку с отступом. Пользователь 'marie' в этот список не входит, поэтому программа выводит соответствующее сообщение:
Marie, you can post a response if you wish.
Логические выражения
В процессе изучения программирования вы рано или поздно услышите термин «логическое выражение». По сути это всего лишь другое название для проверки условия. Результат логического выражения равен True или False, как и результат условного выражения после его вычисления.
Логические выражения часто используются для проверки некоторых условий — например, запущена ли компьютерная игра или разрешено ли пользователю редактирование некоторой информации на сайте:
game_active = True
can_edit = False
Логические выражения предоставляют эффективные средства для контроля состояния программы или определенного условия, играющего важную роль в вашей программе.
Упражнения
5-1. Проверка условий: напишите последовательность условий. Выведите описание каждой проверки и ваш прогноз относительно ее результата. Код должен выглядеть примерно так:
car = 'subaru'
print("Is car == 'subaru'? I predict True.")
print(car == 'subaru')
print("\nIs car == 'audi'? I predict False.")
print(car == 'audi')
• Внимательно просмотрите результаты. Убедитесь в том, что вы понимаете, почему результат каждой строки равен True или False.
• Создайте как минимум 10 условий. Не менее 5 должны давать результат True, а не менее 5 других — результат False.
5-2. Больше условий: количество условий не ограничивается 10. Попробуйте написать другие условия и включить их в conditional_tests.py. Программа должна выдавать по крайней мере один истинный и один ложный результат для следующих видов проверок.
• Проверка равенства и неравенства строк.
• Проверки с использованием функции lower().
• Числовые проверки равенства и неравенства, условий «больше», «меньше», «больше или равно», «меньше или равно».
• Проверки с ключевым словом and и or.
• Проверка вхождения элемента в список.
• Проверка отсутствия элемента в списке.
Команды if
Когда вы поймете, как работают проверки условий, можно переходить к написанию команд if. Существуют несколько разновидностей команд if, и выбор варианта зависит от количества проверяемых условий. Примеры команд if уже встречались вам при обсуждении проверки условий, но сейчас эта тема будет рассмотрена более подробно.
Простые команды if
Простейшая форма команды if состоит из одного условия и одного действия:
if условие:
. .действие
В первой строке размещается условие, а в блоке с отступом — практически любое действие. Если условие истинно, то Python выполняет код в блоке после команды if, а если ложно, этот код игнорируется.
Допустим, имеется переменная, представляющая возраст человека. Следующий код проверяет, что этот возраст достаточен для голосования:
voting.py
age = 19
(1) if age >= 18:
(2) . .print("You are old enough to vote!")
В точке (1) Python проверяет, что значение переменной age больше или равно 18. В таком случае выполняется команда print (2) в строке с отступом:
You are old enough to vote!
Отступы в командах if играют ту же роль, что и в циклах for. Если условие истинно, то все строки с отступом после команды if выполняются, а если ложно — весь блок с отступом игнорируется.
Блок команды if может содержать сколько угодно строк. Добавим еще одну строку для вывода дополнительного сообщения в том случае, если возраст достаточен для голосования:
age = 19
if age >= 18:
print("You are old enough to vote!")
. .print("Have you registered to vote yet?")
Условие выполняется, а обе команды print снабжены отступом, поэтому выводятся оба сообщения:
You are old enough to vote!
Have you registered to vote yet?
Если значение age меньше 18, программа ничего не выводит.
Команды if-else
Часто в программе необходимо выполнить одно действие в том случае, если условие истинно, и другое действие, если оно ложно. С синтаксисом if-else это возможно. Блок if-else в целом похож на команду if, но секция else определяет действие или набор действий, выполняемых при неудачной проверке.
В следующем примере выводится то же сообщение, которое выводилось ранее, если возраст достаточен для голосования, но на этот раз при любом другом возрасте выводится другое сообщение:
age = 17
(1) if age >= 18:
print("You are old enough to vote!")
print("Have you registered to vote yet?")
(2)else:
. .print("Sorry, you are too young to vote.")
. .print("Please register to vote as soon as you turn 18!")
Если условие (1) истинно, то выполняется первый блок с командами print. Если же условие ложно, выполняется блок else в точке (2). Так как значение age на этот раз меньше 18, условие оказывается ложным, и выполняется код в блоке else:
Sorry, you are too young to vote.
Please register to vote as soon as you turn 18!