Изучаем Python - [33]
age = 12
if age < 4:
price = 0
elif age < 18:
price = 5
elif age < 65:
price = 10
(1) elif age >= 65:
price = 5
print("Your admission cost is $" + str(price) + ".")
Блок elif в точке (1) назначает цену $5, если возраст посетителя равен 65 и выше; смысл такого кода более понятен, чем у обобщенного блока else. С таким изменением выполнение каждого блока возможно только при истинности конкретного условия.
Блок else «универсален»: он обрабатывает все условия, не подходящие ни под одну конкретную проверку if или elif, причем в эту категорию иногда могут попасть недействительные или даже вредоносные данные. Если у вас имеется завершающее конкретное условие, лучше используйте завершающий блок elif и опустите блок else. В этом случае вы можете быть уверены в том, что ваш код будет выполняться только в правильных условиях.
Проверка нескольких условий
Цепочки if-elif-else эффективны, но они подходят только в том случае, если истинным должно быть только одно условие. Как только Python находит выполняющееся условие, все остальные проверки пропускаются. Такое поведение достаточно эффективно, потому что оно позволяет проверить одно конкретное условие.
Однако иногда бывает важно проверить все условия, представляющие интерес. В таких случаях следует применять серии простых команд if без блоков elif или else. Такое решение уместно, когда истинными могут быть сразу несколько условий и вы хотите отреагировать на все истинные условия.
Вернемся к примеру с пиццей. Если кто-то закажет пиццу с двумя дополнениями, программа должна обработать оба дополнения:
toppings.py
(1) requested_toppings = ['mushrooms', 'extra cheese']
(2)if 'mushrooms' in requested_toppings:
. .print("Adding mushrooms.")
(3)if 'pepperoni' in requested_toppings:
. .print("Adding pepperoni.")
(4)if 'extra cheese' in requested_toppings:
. .print("Adding extra cheese.")
. .
print("\nFinished making your pizza!")
Обработка начинается в точке (1) со списка, содержащего заказанные дополнения. Команды if в точке (2) и (3) проверяют, включает ли заказ конкретные дополнения — грибы и пепперони, и если включает — выводят подтверждающее сообщение. Проверка в точке (3) реализована простой командой if, а не elif или else, поэтому условие будет проверяться независимо от того, было ли предыдущее условие истинным или ложным. Код в точке (4) проверяет, была ли заказана дополнительная порция сыра, независимо от результата первых двух проверок. Эти три независимых условия проверяются при каждом выполнении программы.
Так как в этом коде проверяются все возможные варианты дополнений, в заказ будут включены два дополнения из трех:
Adding mushrooms.
Adding extra cheese.
Finished making your pizza!
Если бы в программе использовался блок if-elif-else, код работал бы неправильно, потому что он прерывал работу после обнаружения первого истинного условия. Вот как это выглядело бы:
requested_toppings = ['mushrooms', 'extra cheese']
if 'mushrooms' in requested_toppings:
print("Adding mushrooms.")
elif 'pepperoni' in requested_toppings:
print("Adding pepperoni.")
elif 'extra cheese' in requested_toppings:
print("Adding extra cheese.")
print("\nFinished making your pizza!")
Первое же проверяемое условие (для 'mushrooms') оказывается истинным. Однако значения 'extra cheese' и 'pepperoni' после этого не проверяются, потому что в цепочках if-elif-else после обнаружения первого истинного условия все остальные условия пропускаются. В результате в пиццу будет включено только первое из заказанных дополнений:
Adding mushrooms.
Finished making your pizza!
Итак, если вы хотите, чтобы в программе выполнялся только один блок кода, — используйте цепочку if-elif-else. Если же выполняться должны несколько блоков, используйте серию независимых команд if.
Упражнения
5-3. Цвета 1: представьте, что в вашей компьютерной игре только что был подбит корабль пришельцев. Создайте переменную с именем alien_color и присвойте ей значение ‘green’, ‘yellow’ или ‘red’.
• Напишите команду if для проверки того, что переменная содержит значение ‘green’. Если условие истинно, выведите сообщение о том, что игрок только что заработал 5 очков.
• Напишите одну версию программы, в которой условие if выполняется, и другую версию, в которой оно не выполняется. (Во второй версии никакое сообщение выводиться не должно.)
5-4. Цвета 2: выберите цвет, как это было сделано в упражнении 5-3, и напишите цепочку if-else.
• Напишите команду if для проверки того, что переменная содержит значение ‘green’. Если условие истинно, выведите сообщение о том, что игрок только что заработал 5 очков.
• Если переменная содержит любое другое значение, выведите сообщение о том, что игрок только что заработал 10 очков.
• Напишите одну версию программы, в которой выполняется блок if, и другую версию, в которой выполняется блок else.
5-5. Цвета 3: преобразуйте цепочку if-else из упражнения 5-4 в цепочку if-elif-else.
• Если переменная содержит значение 'green’, выведите сообщение о том, что игрок только что заработал 5 очков.
• Если переменная содержит значение 'yellow’, выведите сообщение о том, что игрок только что заработал 10 очков.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Во всякой уважающей себя книге должно быть предисловие.Но ведь это не совсем настоящая книга! Здесь нет выдуманных героев и сочиненных ситуаций, удачных рецептов, и даже отсутствуют рекомендации, как выйти замуж за олигарха!Почему стоит прочитать эту книгу? Прежде всего потому, что она и о вас.О нашей общей жизни, в которой много чего есть, но больше всего, конечно, любви. Так что это записки о любви, реальные записки, а не выдуманные.Эту самую жизнь я стала записывать на страницах Живого Журнала. Для себя и моих близких.
Тема форума Флибуста через i2p, TOR и VPN (инструкции по установке и запуску для «чайников»). v. 1.0ВНИМАНИЕ!Все приведённые ниже настройки не обеспечивают вашу полную анонимность в сети, и предназначены исключительно для доступа к книгам на Флибусте.Информацию по безопасной работе с запрещенными сайтами это руководство не дает, это не является профилем библиотеки.Берегите себя.
Системное, компактное и хорошо структурированное руковод ство по всем аспектам функционирования корпоративных сайтов. Книга обобщает богатый практический опыт ее авторов (более 700 успешных проектов в сфере веб-разработок и сотни печатных и электронных публикаций). На страницах книги вы найдете множество рекомендаций, примеров, методик и контрольных списков, которые позволят сделать ваш веб-сайт мощным бизнес-инструментом.Книга адресована директорам по маркетингу и другим специалистам, в чьи обязанности входит управление корпоративными веб-сайтами.В качестве важного дополнения к настояшему изданию рекомендуем сайт www.webdevelopment.ru, на котором вы можете оставить свои комментарии, ознакомиться с дополнительными материалами, задать вопросы, пообщаться с авторами.
Учебное пособие знакомит читателей с одной из наиболее интересных и перспективных задач прикладного программирования - задачей автоматической обработки тестов на естественном языке. Рассмитриваются рациональные сферы применения систме автоматической обработки текстов , проблемы их линвистиеского обеспечения. Для студентов 2 курса факультета ВМК МГУ в поддержку обязательного лекционного курса "Прикладное программное обеспчение". Авторы пособия благодарят Владимира Геннадиевича Абрамова и Валерия Ивановича Родина за ценные советы и замечания.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В этой книге вы не найдете описания конкретных технологий, алгоритмов и языков программирования — ценность ее не в этом. Она представляет собой сборник практических советов и рекомендаций, касающихся ситуаций, с которыми порой сталкивается любой разработчик: отсутствие мотивации, выбор приоритетов, психология программирования, отношения с руководством и коллегами и многие другие. Подобные знания обычно приходят лишь в результате многолетнего опыта реальной работы. По большому счету перед вами — ярко и увлекательно написанное руководство, которое поможет быстро сделать карьеру в индустрии разработки ПО любому, кто поставил себе такую цель.
Что общего между самыми востребованными профессиями и стремительным увеличением количества информации в мире? Ответ: язык структурированных запросов (SQL). SQL — рабочая лошадка среди языков программирования, основа основ для современного анализа и управления данными. Книга «SQL: быстрое погружение» идеальна для всех, кто ищет новые перспективы карьерного роста; для разработчиков, которые хотят расширить свои навыки и знания в программировании; для любого человека, даже без опыта, кто хочет воспользоваться возможностями будущего, в котором будут править данные.
Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение». Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей.
Алгоритмы - это всего лишь пошаговые алгоритмы решения задач, и большинство таких задач уже были кем-то решены, протестированы и проверены. Можно, конечно, погрузится в глубокую философию гениального Кнута, изучить многостраничные фолианты с доказательствами и обоснованиями, но хотите ли вы тратить на это свое время? Откройте великолепно иллюстрированную книгу и вы сразу поймете, что алгоритмы - это просто. А грокать алгоритмы - это веселое и увлекательное занятие.