Лутц М. - Изучаем Python (1077325), страница 6
Текст из файла (страница 6)
Вам не нужно вводить символ %. Точно также в листингах, отображающих сеанс работы с интерпретатором, не нужно вводить символы»> и, которые показаны в начале строки, — это приглашения к вводу, которые выводятся интерпретатором Ру1поп. Вводите лишь текст, который находится сразу же за этими приглашениями. Чтобы помочь вам запомнить это правило, все, что должно вводиться пользователем, выделено жирным шрифтом. Кроме того, обычно не требуется вводить текст в листингах, начинающийся с символа в, так как это комментарии, а не исполняемый программный код.
Зо Предисловие Ба1аг1® Воо1сз Оп11пе Я Если на обложке технической книги есть пиктограмма Я~Я1 1 «Завмаг!е Воойв Оп11пе», это означает, что книга доступна в Сети через О'Ве)11у Не!тгогй Ва!аг! ВоойвЬе11. Запас! предлагает намного лучшее решение, чем электронные книги. Это виртуальная библиотека, позволяющая без труда находить тысячи лучших технических книг, вырезать и вставлять примеры кода, загружать главы и находить быстрые ответы, когда требуется наиболее верная и свежая информация. Она свободно доступна по адресу Ь!!р:// ва/ал.огеШу.сот.
Как с нами связаться С вопросами и предложениями, касающимися этой книги, обращайтесь в издательство: О'Ве11!у Мед!а 1005 Огачепв!е!и Н!яЬтгау Хог!Ь ЗеЬав!оро1, СА 95472 800-998-9988 (в Соединенных Штатах Америки или в Канаде) 707-829-0515 (международный) 707-829-0104 (факс) Список опечаток, файлы с примерами и другую дополнительную информацию вы найдете на сайте книги: Ь!!р://шшш.оге!!!у.сот/са!а!оу/9780596513986 Свои пожелания и вопросы технического характера отправляйте по адресу: Ьоо)циев!!опзйоге!!!у.сот Дополнительную информацию о книгах, обсуждения, Центр ресурсов издательства О'Ве111у вы найдете на сайте: Ь!!рс//шшш.оге!!!у сот Обновления и дополнения к книге вы также можете найти на сайтах, упоминавшихся выше в этом предисловии.
Благодарности Учитывая, что я работаю уже над третьим изданием этой книги, я не могу не пребывать в настроении, что «сложное задание выполнено». Я использовал и пропагандировал Ру!Ьоп на протяжении 15 лет и обучал этому языку 1О лет. Несмотря на то, что все течет и все меняется, я по-прежнему поражаюсь успеху, который сопутствует языку Ру!Ьоп. В 1992 году большинство из нас едва ли могло предполагать, какими путями он будет развиваться. Но, чтобы не выглядеть безнадежно эго- Предисловие центричным, я хотел бы немного вспомнить о прошлом и сказать несколько слов благодарности. Это была длинная и извилистая дорога.
Огладываясь назад, когда в 1992 году я открыл для себя Ру(Ьоп, я предположить не мог, какое влияние он будет оказывать на мою жизнь в следующие 1б лет. Через два года после начала работы над первым изданием «Ьеагп1пд Ру(Ьоп» в 1995 году я начал путешествовать по стране и миру, обучая начинающих программистов этому языку программирования.
После выхода первого издания в 1999 году преподавание Ру1Ьоп и работа над книгами стали моей основной работой, во многом благодаря интенсивному росту популярности Ру(Ьоп. В середине 2007 года, когда я пишу эти слова, мною уже написано девять книг о Ру1Ьоп; опыт преподавания Ру(Ьоп насчитывает более 10 лет.
Проведя более 200 курсов в США, Европе, Канаде и Мексике, я обучил более 3000 студентов. Помимо множества мучительных часов, проведенных в самолетах, эти курсы дали мне возможность существенно улучшить эту и другие книги о Ру1Ьоп. За эти годы преподавание помогало улучшать качество книг, а работа над книгами — качество преподавания. Фактически книга, которую вы читаете, была почти полностью получена из программы моих курсов. В связи с этим я хотел бы поблагодарить всех студентов, которые участвовали в моих курсах на протяжении последних 10 лет.
Как развитие языка Ру(Ьоп, так и ваши отзывы сыграли немаловажную роль в становлении этой книги. (Нет ничего более поучительного, чем наблюдение за 3000 студентами, которые совершают одни и те же ошибки, свойственные начинающим программистам!) Это издание стало возможным в первую очередь благодаря тем, кто посещал мои курсы после 2003 года, и тем не менее, все, кто посещал мои курсы, начиная с 1997 года, так или иначе помогли в улучшении этой книги. Я особенно хотел бы поблагодарить компании, предоставившие помещения для проведения курсов в Дублине, Мехико, Барселоне, Лондоне, Эдмонтоне и Пуэрто Рико; лучшие условия аренды трудно себе представить.
Я также хотел бы выразить свою благодарность всем, кто принимал участие в производстве этой книги. Редакторам, работавшим над этим проектом: Татьяне Аланди (Та11апа Арапс(1), работавшей над этим изданием, и многим другим редакторам, работавшим над предыдущими изданиями. Лизе Дейли (Ь)за Оа1у) за участие в техническом обзоре этой книги. И издательству О'Ке111у, за то что я получил шанс работать над этими девятью проектами книг — это было здорово (правда, порой я чувствовал себя как герой фильма «День сурка»).
Я хочу поблагодарить своего первого соавтора Дэвида Ашера (ПачЫ АвсЬег) за его работу над ранними изданиями этой книги. Дэвид написал часть «Ои1ег Ьауегз (Внешние уровни)» для предыдущих изданий, которую мы, к сожалению, убрали из книги, чтобы освободить место для новых материалов об основах языка Ру(Ьоп.
В это издание Предисловие я добавил больше усложненных программ и заключительное упражнение для самостоятельного изучения, но это не компенсирует все то, что пришлось вырезать. Если вам не хватает этого материала, прочитайте ранее приведенные в предисловии примечания по поводу книг, описывающих вопросы прикладного программирования. За создание такого замечательного и полезного языка я должен поблагодарить Гвидо ван Россума (Оп(бо сап Воввпш) и все сообщество разработчиков и пользователей Ру(Ьоп. Подобно большинству программных продуктов с открытыми исходными текстами Ру(Ьоп развивается благодаря героическим усилиям многих программистов.
Обладая 15-летним опытом программирования на РусЬоп, я по-прежнему нахожу его серьезной забавой. Мне очень повезло, что я смог наблюдать, как из маленького младенца в семействе языков сценариев Ру$Ьоп вырос в популярный инструмент, которым пользуются практически все компании, занимающиеся разработкой программного обеспечения. Участвовать в этом процессе было очень волнующим занятием, и поэтому я хотел бы поблагодарить и поздравить с достигнутыми успехами все сообщество РусЬоп.
Я также хотел бы поблагодарить своего первого редактора из издательства О'Ве(1!у, Фрэнка Уиллисона (Ргап)с %'1111воп). Идея этой книги во многом принадлежит Фрэнку, и в ней нашли отражение его взгляды. Оглядываясь назад, можно заметить, что Фрэнк оказал существенное влияние как на мою карьеру, так и на Ру$Ьоп. Не будет преувеличением сказать, что успех развития РусЬоп на начальном этапе в определенной степени обусловлен влиянием Фрэнка.
Мы по- прежнему скучаем по нему. В заключение хотелось бы выразить личную благодарность. Компании ОьеО за самые лучшие игрушки, какие я только видел. Покойному Карлу Сагану (Саг1 Ваяап), за то что вдохновил 18-летнего мальчишку из Висконсина. Йону Стюарту (аоп В(еэеаг() и Майклу Муру (М1сЬае1 Мооге) за патриотизм. И всем крупным корпорациям, с которыми мне приходилось иметь дело, за то, что напоминают мне о том, как это здорово — работать на самого себя. Моим детям, Майку (М(йе), Сэмми (Ватку) и Рокси (Веху), за любую будущность, которую они выберут. Вы были детьми, когда я начинал работать с языком РусЬоп, и вы каким-то образом выросли за это время; я горжусь вами.
Жизнь может перекрыть нам все пути, но путь домой всегда остается открытым. Но больше всего я благодарен Вере (Чета), моему лучшему другу, моей подруге и моей жене. День, когда я нашел тебя, был лучшим днем в моей жизни. Я не знаю, что принесут мне следующие 50 лет, но я знаю, что хотел бы прожить их рядом с тобой. Марк Лутц (Маг)ь (цсэ) Бертуд, Колорадо Июль 2007 РуФоп в вопросах и ответах Если вы купили эту книгу, вы, скорее всего, уже знаете, что такое РуФоп и насколько важно овладеть этим инструментом.
Если это не так, вы наверняка не сможете зарабатывать на РуФЬоп, пока не изучите язык, прочитав оставшуюся часть этой книги, и не напишете пару проектов. Но прежде чем мы приступим к изучению деталей, давайте сначала рассмотрим основные причины высокой популярности языка РУФЬоп. Перед тем как приступить собственно к языку Ру$Ьоп, в этой главе рассматриваются некоторые вопросы, которые обычно задают начинающие программисты, и даются ответы на них.
Почему программисты используют РуФоп? Это самый типичный вопрос, который задают начинающие программисты, потому что на сегодняшний день существует масса других языков программирования. Учитывая, что число пользователей Ру1Ьоп составляет порядка 1 миллиона человек, достаточно сложно однозначно ответить на этот вопрос. Выбор средств разработки иногда зависит от уникальных особенностей и личных предпочтений.
Однако после обучения примерно 200 групп и 3000 студентов за последние 10 лет у меня накопились некоторые общие мысли по этому поводу. Основные факторы, которые приводятся пользователями Ру$Ьоп, примерно таковы: Качество программного обеспечения Для многих основное преимущество языка Ру$Ьоп заключается в удобочитаемости, ясности и более высоком качестве, отличающими его от других инструментов в мире языков сценариев. Программный код на языке РуФЬоп читается легче, а значит, многократное его использование и обслуживание выполняется гораздо проще, чем использование программного кода на других языках сценариев. Глава 1. Ругйоп в вопросах и ответах Единообразие оформления программного кода на языке РуФЬоп облегчает его понимание даже для тех, кто не участвовал в создании этого кода. Кроме того, Ру1Ьоп поддерживает самые современные механизмы многократного использования программного кода, каким является объектно-ориентированное программирование (ООП).
Высокая скорость разработ ки По сравнению с компилирующими или строго типизированными языками, такими как С, С++ и дача, РуФЬоп во много раз повышает производительность труда разработчика. Объем программного кода на языке РуФЬоп обычно составляет треть или даже пятую часть эквивалентного программного кода на языке С++ или дача. Это означает меньший объем ввода с клавиатуры, меньшее количество времени на отладку и меньший объем трудозатрат на сопровождение. Кроме того, программы на языке РуСЬоп запускаются сразу же, минуя длительные этапы компиляции и связывания, необходимые в некоторых других языках программирования, что еще больше увеличивает производительность труда программиста.
Переносимость программ Большая часть программ на языке РуьЬоп выполняется без изменений на всех основных платформах. Перенос программного кода из операционной системы Б)ппх в '6Чпбохчв обычно заключается в простом копировании программного кода сценария с одной машины на другую. Более того, Ру$Ьоп предоставляет массу возможностей по созданию переносимых графических интерфейсов, программ доступа к базам данных, веб-приложений и многих других типов программ.
Даже интерфейсы операционных систем, включая способ запуска программ и обработку каталогов, в языке Ру$Ьоп реализованы переносимым способом. Поддержка библиотек В составе Ру1Ьоп поставляется большое число собранных и переносимых функциональных возможностей, известных как стандартная библиотека.