УПРАЖНЕНИЯ
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
уже встречались
вам при обсуждении проверки условий, но сейчас эта тема будет рассмотрена более
подробно.
90 Глава 5 • Команды if
Простые команды if
Простейшая форма команды
if
состоит из одного условия и одного действия:
if условие:
действие
В первой строке размещается условие, а в блоке с отступом — практически
любое действие. Если условие истинно, то Python выполняет код в блоке после
команды
if
, а если ложно, этот код игнорируется.
Допустим, имеется переменная, представляющая возраст человека. Следующий
код проверяет, что этот возраст достаточен для голосования:
voting.py
age = 19
if age >= 18:
print("You are old enough to vote!")
В точке Python проверяет, что значение переменной
age
больше или равно 18.
В таком случае выполняется команда
print
в строке с отступом:
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
определяет
действие или набор действий, выполняемых при неудачной проверке.
Команды if 91
В следующем примере выводится то же сообщение, которое выводилось ранее, если
возраст достаточен для голосования, но на этот раз при любом другом возрасте
выводится другое сообщение:
age = 17
if age >= 18:
print("You are old enough to vote!")
print("Have you registered to vote yet?")
else:
print("Sorry, you are too young to vote.")
print("Please register to vote as soon as you turn 18!")
Если условие истинно, то выполняется первый блок с командами
print
. Если же
условие ложно, выполняется блок
else
в точке . Так как значение
age
на этот раз
меньше 18, условие оказывается ложным, и выполняется код в блоке
else
:
Sorry, you are too young to vote.
Please register to vote as soon as you turn 18!
Этот код работает, потому что существуют всего две возможные ситуации: воз-
раст либо достаточен для голосования, либо недостаточен. Структура
if
-
else
хорошо подходит для тех ситуаций, в которых Python всегда выполняет только
одно из двух возможных действий. В подобных простых цепочках
if
-
else
всегда
выполняется одно из двух возможных действий.
Цепочки if-elif-else
Нередко в программе требуется проверять более двух возможных ситуаций; для
таких ситуаций в Python предусмотрен синтаксис
if
-
elif
-
else
. Python выполняет
только один блок в цепочке
if
-
elif
-
else
. Все условия проверяются по порядку
до тех пор, пока одно из них не даст истинный результат. Далее выполняется код,
следующий за этим условием, а все остальные проверки Python пропускает.
Во многих реальных ситуациях существуют более двух возможных результатов.
Представьте себе парк аттракционов, который взимает разную плату за вход для
разных возрастных групп:
Для посетителей младше 4 лет вход бесплатный.
Для посетителей от 4 до 18 лет билет стоит $5.
Для посетителей от 18 лет и старше билет стоит $10.
Как использовать команду
if
для определения платы за вход? Следующий код
определяет, к какой возрастной категории относится посетитель, и выводит со-
общение со стоимостью билета:
Достарыңызбен бөлісу: |