Марк Лутц - Изучаем Python, Четвертое издание (1184811), страница 16
Текст из файла (страница 16)
Мояцель состоит в том, чтобы обучить вас языку Python, а не продать его. Лучшийспособ создать собственное мнение о языке – это опробовать его в действии,поэтому остальная часть книги целиком и полностью будет сфокусирована наописании языка, который здесь был представлен.Следующие две главы могут рассматриваться как техническое введениев язык. В этих главах мы узнаем, как запускаются программы на языке ���Python, коротко рассмотрим модель исполнения байт-кода и получим основныесведения об организации файлов модулей, в которых хранится программныйкод.
Цель этих глав состоит в том, чтобы дать вам объем информации, достаточный для запуска примеров и выполнения упражнений в остальной частикниги. Мы фактически не будем касаться вопросов программирования до главы 4, но прежде чем перейти к нему, вы определенно получите все необходимыеначальные сведения.Закрепление пройденногоКонтрольные вопросыКаждая глава в этом издании книги будет завершаться серией коротких контрольных вопросов, которые помогут вам закрепить в памяти ключевые концепции. Ответы на вопросы следуют ниже, и вы можете прочитать эти ответысразу, как только столкнетесь с затруднениями.
Помимо контрольных вопросов в конце каждой части вы найдете упражнения, предназначенные для того,чтобы помочь вам программировать на языке �����������������������������Python�����������������������. Итак, перед вами первый тест. Удачи!1. Назовите шесть основных причин, по которым программисты выбираютPython?2. Назовите четыре известные компании или организации, использующиеPython.3. Почему бы вы не хотели использовать Python в приложениях?4. Какие задачи можно решать с помощью Python?5. Какой важный результат можно получить с помощью инструкции importthis?6. Почему слово «spam» так часто используется в примерах программногокода на языке Python?7. Какой ваш любимый цвет?ОтветыНу, как дела? Ниже приводятся ответы, которые подготовил я, хотя на некоторые вопросы существует несколько правильных ответов. Напомню еще раз,даже если вы абсолютно уверены в правильности своих ответов, я советую прочитать мои ответы, хотя бы ради того, чтобы получить некоторые дополнительные сведения.
Если мои ответы кажутся вам бессмысленными, прочитайтетекст главы еще раз.60Глава 1. Python в вопросах и ответах1. Качество программного обеспечения, скорость разработки, переносимостьпрограмм, библиотеки поддержки, интеграция компонентов и просто удовольствие. Из этих шести причин качество и скорость разработки являютсянаиболее существенными при выборе Python.2. Google, Industrial Light & Magic, EVE Online, Jet Propulsion Labs, Maya,ESRI и многие другие.
Практически каждая организация, занимающаясяразработкой программного обеспечения так или иначе использует Pythonкак для решения долговременных, стратегических задач проектирования,так и для решения краткосрочных тактических задач, таких как тестирование и системное администрирование.3. Основным недостатком Python является невысокая производительность,программы на языке Python������������������������������������������������������������������������������������������������не могут выполняться так же быстро, как программы на полностью компилируемых языках, таких как C�����������������������������и С++.
С другой стороны, для большинства применений он обладает достаточно высокойскоростью выполнения и обычно программный код на языке Python������������������работает со скоростью, близкой к скорости языка C, потому что интерпретаторвызывает встроенный в него программный код, написанный на языке C.Если скорость выполнения имеет критическое значение, отдельные частиприложения можно реализовать на языке C, в виде расширений.4. Вы можете использовать Python для любых задач, которые можно решитьс помощью компьютера, – от реализации веб-сайта и игровых программ доуправления роботами и космическими кораблями.5. Инструкция import this активизирует «пасхальное яйцо», скрытое в недрахPython�������������������������������������������������������������, которое отображает некоторые принципы проектирования, лежащие в основе языка.
Как запустить эту инструкцию, вы узнаете в следующей главе.6. Слово «���������������������������������������������������������������spam�����������������������������������������������������������» взято из известной пародии Монти Пайтона, где герои сериала пытаются заказать блюдо в кафетерии, а их заглушает хор викингов,поющих о консервах фирмы ��������������������������������������������Spam����������������������������������������. Ах да! Это еще и типичное имя переменной, которое используется в сценариях на языке Python...7. Голубой.
Нет, желтый!Программирование на языке Python –это технический процесс, а не искусствоКогда в начале 1990-х годов Python впервые появился на сцене программного обеспечения, это породило что-то вроде конфликта междусторонниками языка Python и другого популярного языка сценариев –Perl. Лично я считаю такие дебаты пустыми и бессмысленными – разработчики достаточно умны, чтобы самостоятельно сделать выводы. Однако в моей преподавательской практике мне часто приходится слышатьвопросы на эту тему, поэтому я считаю необходимым сказать несколькослов по этому поводу.Закрепление пройденногоВ двух словах: все, что можно сделать на Perl, можно сделать и наPython, но при использовании Python вы еще сможете прочитать свойпрограммный код.
Для большинства удобочитаемость программного кодана языке Python означает возможность многократного его использованияи простоту сопровождения, что делает Python отличным выбором длянаписания программ, которые не попадут в разряд написанных и сразупосле отладки выброшенных. Программный код на языке Perl легко писать, но сложно читать. Учитывая, что период жизни большинства программ длится много дольше, чем период их создания, многие усматривают в Python более эффективный инструмент программирования.Если говорить более развернуто, история конфликта отражает опытпроектировщиков двух языков программирования и подчеркивает некоторые из основных причин, по которым программисты отдают предпочтение языку Python. Создатель языка Python – математик по образованию, и потому он создал язык, обладающий высокой степеньюоднородности – его синтаксис и набор возможностей отличаются удивительной согласованностью.
Более того, если говорить математическимитерминами, язык Python обладает ортогональной архитектурой – большая часть выразительных возможностей языка следует из небольшогочисла базовых концепций. Например, как только программист схватывает суть полиморфизма в Python, все остальное легко достраивается.Создатель языка Perl, напротив – лингвист, поэтому и язык отражаетего профессиональный опыт. В языке Perl одну и ту же задачу можнорешить множеством способов, а языковые конструкции взаимодействуют между собой контекстно-зависимым, порой трудноуловимым способом, во многом напоминая естественный язык общения.
Как известно,девизом языка Perl является выражение: «Всякую задачу можно решитьболее чем одним способом». Учитывая это, можно сказать, что язык Perlи сообщество его пользователей исторически стремились к свободе выражения мыслей при создании программного кода. Программный кододного программиста может радикально отличаться от программногокода другого. И правда, искусство создания уникального хитросплетения инструкций всегда было предметом гордости программистов на Perl.Однако любой, кто когда-либо занимался сопровождением программного кода, скажет вам, что свобода самовыражения хороша для искусства,но не для технологического процесса.
В технологии нам требуются минимальный набор возможностей и высокая степень предсказуемости.Свобода выражения мыслей в технологии может превратить процесс сопровождения в непрекращающийся кошмар. По секрету говоря, уже неот одного пользователя Perl я слышал, что проще написать свой код, чемвнести изменения в чужой.Когда художник пишет картину или ваяет скульптуру, он выражает этимисключительно себя, свои эстетические побуждения.
Он не предполагает,что картина или скульптура будет изменяться другим художником. Этоважное различие между искусством и технологическим процессом.6162Глава 1. Python в вопросах и ответахКогда программист пишет сценарий, он пишет его не для себя самого.Более того, сценарий пишется даже не для компьютера. Хороший программист знает, что свой программный код он пишет для другого человека, который будет вынужден читать его в ходе сопровождения и использования. Если этот человек не сможет понять сценарий, сценарийстанет практически бесполезным в реальной жизни.Многие находят в этом самое четкое отличие Python от других языковсценариев, подобных языку Perl. Синтаксическая модель Python вынуждает пользователя писать удобочитаемый программный код, поэтому программы на языке Python лучше вписываются в полный циклразработки программного обеспечения.
А такие свойства Python, какограниченное число способов взаимодействия, единообразие, закономерность и непротиворечивость, способствуют появлению программного кода, который будет использоваться после того, как будет написан.В конечном счете, в центре внимания языка Python находится качествопрограммного кода, что само по себе повышает производительностьпрограммиста и приводит к появлению у него чувства удовлетворенности. Программисты, использующие язык Python, могут быть не менеетворческими натурами и, как мы увидим позднее, в некоторых случаях этот язык также способен предложить несколько способов решенияодной и той же задачи.
Тем не менее, в своей основе Python стимулируетведение разработки способами, часто недоступными в других языкахсценариев.По крайней мере, это общее мнение многих из тех, кто принял Pythonна вооружение. Конечно, у вас сложится собственное суждение по мереизучения Python. А приступить к изучению мы сможем в следующейглаве.Глава 2.Как Python запускает программыВ этой и в следующей главе будут коротко рассмотрены вопросы исполненияпрограмм – как программы запускаются человеком и как Python выполняетих. В этой главе мы рассмотрим интерпретатор Python. После этого в главе 3будет показано, как создавать и запускать свои собственные программы.Порядок запуска программ в любом случае зависит от типа платформыи какие-то сведения из этой главы могут оказаться неприменимы к платформе,используемой вами, поэтому вы можете просто пропускать разделы, которыене относятся к вам. Точно так же опытные пользователи, которым уже приходилось использовать подобные инструменты в прошлом и которые стремятсяпобыстрее добраться до самого языка, могут пропустить эту главу, оставив ее«для ознакомления в будущем».