Подробности
Python е популярен език за обектно ориентирано програмиране с отворен сорс, използван както за създаването на самостоятелни програми, така и на скриптови приложения. Преносим, мощен и лесен за употреба, а за овладяването му се възползвайте от помощта на експертните учители. Второто издание на Да научим Python ви оставя в ръцете на Марк Луц и Дейвид Ашер, двама именити експерти относно Python, чийто "дружелюбен" и добре структуриран текст е помогнал на голям брой програмисти да достигнат майсторство във владеенето на езика.
Да научим Python предлага на програмистите цялостно и изчерпателно учебно помагало за Python, а също така и за обектно ориентираното програмиране. Изцяло осъвременена, тази книга въвежда основните eлементи на най-новата версия 2.3 на Python, като в нея се разглеждат нови допълнителни възможности, например включвания на списъци, вложени обхвати и итератори/генераторни функции.
Освен самите характеристики на езика, това издание на Да научим Python предлага също нов контекст за не толкова опитните програмисти: нов общ преглед на обектно ориентираното програмиране, а също и на динамичния стил на програмиране, нови дискусии за начините на стартиране на програмите, както и на възможностите за конфигуриране, представени са по нов начин източниците за документация и др. В книгата са разгледани и нови случаи от практиката, така че да бъдат показани по-конкретно приложението на възможностите на езика.
За начало Да научим Python предлага на програмистите цялата необходима информация за разбирането и изграждането на програми с езика Python – за типовете, операторите, конструкциите, класовете, функциите, модулите и изключенията. След което авторите представят по-задълбочен материал, показвайки как с Python могат да се изпълняват често срещани в практиката задачи, като се използват съществуващи приложения и библиотеки към тези приложения. Книгата съдържа също и множество упражнения, с които можете да проверите новопридобитите умения.
Да научим Python, второ издание, е самостоятелна книга, позволяваща на читателите да навлязат в дълбочина в сърцевината на самия език Python. С прочита на книгата ще постигнете цялостно и задълбочено разбиране на Python, което ще ви помогне сами да кодирате по-големи приложения. Тази книга е предназначена за всички, които не просто искат да научат Python, а най-вече майсторски да го овладеят.
Освен от индивидуалните потребители, Python е използван също и за истински комерсиални продукти, от истински компании. Така например Google и Yahoo! използват в момента Python в областта на Интернет услугите. Hewlett-Packard, Seagate и IBM използват Python за хардуерни тестове; Industrial Light and Magic и други компании използват Python при направата на филмова анимация и т.н. Може би единствената обща черта между компаниите, ползващи Python, е, че Python е използван почти за всичко, ако говорим за областите на неговото приложение. Природата му на език с общо предназначение го прави приложим в почти всички области, а не само в една.
Въведение
Част І. Първи стъпки
1. Сесия с въпроси и отговори
Защо хората използват Python?
Скриптов език ли е Python?
Добре, но какви са недостатъците?
Кой използва Python понастоящем?
Какво може да се прави с Python?
Какви са техническите предимства на Python?
Как изглежда Python, сравнен с други езици за програмиране?
2. Как Python изпълнява програмите
Представяне на интерпретатора на Python
Изпълнение на програмите
Варианти на модела на изпълнение
3. Как да стартирате програмите
Интерактивно кодиране
Системни командни редове и файлове
Щракване върху файловите икони под Windows
Импортиране и повторно зареждане на модули
Потребителският интерфейс IDLE
Други интегрирани среди за разработка
Вграждане на извиквания
Замразени двоични изпълними файлове
Възможности за стартиране от текстови редактори
Други възможности за стартиране
Бъдещи възможности?
Коя възможност да използвам?
Упражнения към част I
Част ІІ. Типове и операции
4. Числа
Програмна структура на Python
Защо да използваме вградени типове?
Числа
Оператори за изрази на Python
Числата в действие
Въведение в динамичното програмиране
5. Знакови низове
Низови литерали
Знаковите низове в действие
Низово форматиране
Низови методи
Общи категории на типовете
6. Списъци и речници
Списъци
Списъците в действие
Речници
Речниците в действие
7. Наредени n-торки, файлове и всичко останало
Наредени n-торки
Файлове
Нов преглед на категориите на типовете
Общоприложимост на обектите
Указатели или копия
Сравнения, равенство и проверка за истинност
Йерархия на типовете в Python
Други типове в Python
Уловки, свързани с вградените типове
Упражнения към част II
Част ІІІ. Конструкции и синтаксис
8. Присвояване на стойност, изрази и отпечатване
Конструкции за задаване на стойност
Изрази-конструкции
Конструкции Print
9. Проверки if
Конструкции if
Правила на синтаксиса на Python
Проверки за истинност
10. Цикли while и for
Цикли while
break, continue, pass и цикълът else
Цикли for
Варианти на циклите
11. Документиране на кода на Python
Въведение в документацията на Python
Често срещани уловки при кодирането
Упражнения към част III
Част ІV. Функции
12. Основни характеристики на функциите
Защо да използваме функции?
Кодиране на функции
Първи пример: дефинирания и извиквания
Втори пример: сечение на последователности
13. Обхвати и аргументи
Правила за обхвата на приложимост
Конструкцията global
Обхвати и вложени функции
Подаване на аргументи
Специални модели на свързване на аргументи
14. Сложни теми, свързани с функциите
Анонимни функции: lambda
Прилагане на функции към аргументи
Асоцииране на функции към последователности
Инструменти за функционално програмиране
Включване на списъци
Генератори и итератори
Концепции, свързани с проектирането на функциите
Уловки, свързани с използването на функциите
Упражнения към част IV
Част V. Модули
15. Модули: цялостната картина
Защо да използваме модули?
Програмна архитектура на Python
Как се извършва импортирането
16. Основни принципи при кодирането на модули
Създаване на модули
Работа с модули
Пространства от имена на модулите
Повторно зареждане на модули
17. Пакетно импортиране на модули
Основни принципи на пакетното импортиране
Пример за пакетно импортиране
Защо да използваме пакетно импортиране?
Разказ за три системи
18. По-сложни теми, свързани с модулите
Скриване на данни в модули
Активизиране на бъдещи възможности на езика
Смесени режими на работа: __name__ и __main__
Променяне на пътя за търсене на модули
Допълнителната възможност import as
Концепции, свързани с проектирането на модулите
Уловки, свързани с работата с модули
Упражнения към част V
Част VІ. Класове и ООП
19. ООП: цялостната картина
Защо да използваме класове?
ООП, видяно от 30000 стъпки разстояние
20. Основи на кодирането на класовете
Класовете генерират множество обекти инстанции
Класовете се персонализират чрез онаследяване
Класовете могат да прихващат оператори на Python
21. По-задълбочен преглед на кодирането на класовете
Конструкцията class
Методи
Онаследяване
Предефиниране на оператори
Пространства от имена: цялостната картина
22. Проектиране с класове
Python и ООП
Класовете като записи
ООП и онаследяване: връзки „принадлежи на”
ООП и съставни структури: връзки от тип „притежавам”
ООП и делегиране
Множествено онаследяване
Класовете са обекти: фабрики за обекти с общо приложение
Методите са обекти: обвързани или необвързани
Повторен преглед на документационните низове
Класове или модули
23. Въпроси за напреднали, свързани с класовете
Разширяване на вградените обектни типове
Частни атрибути на клас
Класове „от нов вид” във версия 2.2 на Python
Уловки, свързани с класовете
Упражнения към част VI
Част VІІ. Изключения и инструменти
24. Основни характеристики на изключенията
Защо да използваме изключения?
Манипулиране на изключенията: кратък обзор
Конструкцията try/except/else
Конструкцията try/finally
Конструкцията raise
Конструкцията assert
25. Обекти и изключения
Низови изключения
Класови изключения
Общи форми на конструкцията raise
26. Проектиране с изключения
Влагане на манипулатори за изключения
Значение на изключенията
Съвети за проектирането с изключения
Уловки, свързани с изключенията
Обзор на основната част на езика
Упражнения към част VII
Част VІІІ. Външни слоеве
27. Често срещани въпроси в Python
Преобразуване, числа и сравнение
Работа със знакови низове
Работа със структури от данни
Работа с файлове и директории
Свързани с Интернет модули
Изпълнение на програми
Проверяване за грешки, тестване, тайминг и диагностика
Упражнения
28. Работни рамки
Автоматизирана система за оплаквания
Взаимодействие с СОМ: лесни връзки с обществеността
Базиран върху Tkinter редактор за работа с формуляри
Jython: великолепното обединение на Python и Java
Упражнения
29. Ресурси за Python
Прослойки на общността
Процесът
Услуги и програмни продукти
Легалната работна рамка: Python Software Foundation
Софтуер
Популярен независимо разработен софтуер
Работни рамки за уеб приложения
Инструменти за разработчици на Python
Част ІX. Приложения
А. Инсталация и настройки
Б. Отговори на упражненията
Индекс
Част І. Първи стъпки
1. Сесия с въпроси и отговори
Защо хората използват Python?
Скриптов език ли е Python?
Добре, но какви са недостатъците?
Кой използва Python понастоящем?
Какво може да се прави с Python?
Какви са техническите предимства на Python?
Как изглежда Python, сравнен с други езици за програмиране?
2. Как Python изпълнява програмите
Представяне на интерпретатора на Python
Изпълнение на програмите
Варианти на модела на изпълнение
3. Как да стартирате програмите
Интерактивно кодиране
Системни командни редове и файлове
Щракване върху файловите икони под Windows
Импортиране и повторно зареждане на модули
Потребителският интерфейс IDLE
Други интегрирани среди за разработка
Вграждане на извиквания
Замразени двоични изпълними файлове
Възможности за стартиране от текстови редактори
Други възможности за стартиране
Бъдещи възможности?
Коя възможност да използвам?
Упражнения към част I
Част ІІ. Типове и операции
4. Числа
Програмна структура на Python
Защо да използваме вградени типове?
Числа
Оператори за изрази на Python
Числата в действие
Въведение в динамичното програмиране
5. Знакови низове
Низови литерали
Знаковите низове в действие
Низово форматиране
Низови методи
Общи категории на типовете
6. Списъци и речници
Списъци
Списъците в действие
Речници
Речниците в действие
7. Наредени n-торки, файлове и всичко останало
Наредени n-торки
Файлове
Нов преглед на категориите на типовете
Общоприложимост на обектите
Указатели или копия
Сравнения, равенство и проверка за истинност
Йерархия на типовете в Python
Други типове в Python
Уловки, свързани с вградените типове
Упражнения към част II
Част ІІІ. Конструкции и синтаксис
8. Присвояване на стойност, изрази и отпечатване
Конструкции за задаване на стойност
Изрази-конструкции
Конструкции Print
9. Проверки if
Конструкции if
Правила на синтаксиса на Python
Проверки за истинност
10. Цикли while и for
Цикли while
break, continue, pass и цикълът else
Цикли for
Варианти на циклите
11. Документиране на кода на Python
Въведение в документацията на Python
Често срещани уловки при кодирането
Упражнения към част III
Част ІV. Функции
12. Основни характеристики на функциите
Защо да използваме функции?
Кодиране на функции
Първи пример: дефинирания и извиквания
Втори пример: сечение на последователности
13. Обхвати и аргументи
Правила за обхвата на приложимост
Конструкцията global
Обхвати и вложени функции
Подаване на аргументи
Специални модели на свързване на аргументи
14. Сложни теми, свързани с функциите
Анонимни функции: lambda
Прилагане на функции към аргументи
Асоцииране на функции към последователности
Инструменти за функционално програмиране
Включване на списъци
Генератори и итератори
Концепции, свързани с проектирането на функциите
Уловки, свързани с използването на функциите
Упражнения към част IV
Част V. Модули
15. Модули: цялостната картина
Защо да използваме модули?
Програмна архитектура на Python
Как се извършва импортирането
16. Основни принципи при кодирането на модули
Създаване на модули
Работа с модули
Пространства от имена на модулите
Повторно зареждане на модули
17. Пакетно импортиране на модули
Основни принципи на пакетното импортиране
Пример за пакетно импортиране
Защо да използваме пакетно импортиране?
Разказ за три системи
18. По-сложни теми, свързани с модулите
Скриване на данни в модули
Активизиране на бъдещи възможности на езика
Смесени режими на работа: __name__ и __main__
Променяне на пътя за търсене на модули
Допълнителната възможност import as
Концепции, свързани с проектирането на модулите
Уловки, свързани с работата с модули
Упражнения към част V
Част VІ. Класове и ООП
19. ООП: цялостната картина
Защо да използваме класове?
ООП, видяно от 30000 стъпки разстояние
20. Основи на кодирането на класовете
Класовете генерират множество обекти инстанции
Класовете се персонализират чрез онаследяване
Класовете могат да прихващат оператори на Python
21. По-задълбочен преглед на кодирането на класовете
Конструкцията class
Методи
Онаследяване
Предефиниране на оператори
Пространства от имена: цялостната картина
22. Проектиране с класове
Python и ООП
Класовете като записи
ООП и онаследяване: връзки „принадлежи на”
ООП и съставни структури: връзки от тип „притежавам”
ООП и делегиране
Множествено онаследяване
Класовете са обекти: фабрики за обекти с общо приложение
Методите са обекти: обвързани или необвързани
Повторен преглед на документационните низове
Класове или модули
23. Въпроси за напреднали, свързани с класовете
Разширяване на вградените обектни типове
Частни атрибути на клас
Класове „от нов вид” във версия 2.2 на Python
Уловки, свързани с класовете
Упражнения към част VI
Част VІІ. Изключения и инструменти
24. Основни характеристики на изключенията
Защо да използваме изключения?
Манипулиране на изключенията: кратък обзор
Конструкцията try/except/else
Конструкцията try/finally
Конструкцията raise
Конструкцията assert
25. Обекти и изключения
Низови изключения
Класови изключения
Общи форми на конструкцията raise
26. Проектиране с изключения
Влагане на манипулатори за изключения
Значение на изключенията
Съвети за проектирането с изключения
Уловки, свързани с изключенията
Обзор на основната част на езика
Упражнения към част VII
Част VІІІ. Външни слоеве
27. Често срещани въпроси в Python
Преобразуване, числа и сравнение
Работа със знакови низове
Работа със структури от данни
Работа с файлове и директории
Свързани с Интернет модули
Изпълнение на програми
Проверяване за грешки, тестване, тайминг и диагностика
Упражнения
28. Работни рамки
Автоматизирана система за оплаквания
Взаимодействие с СОМ: лесни връзки с обществеността
Базиран върху Tkinter редактор за работа с формуляри
Jython: великолепното обединение на Python и Java
Упражнения
29. Ресурси за Python
Прослойки на общността
Процесът
Услуги и програмни продукти
Легалната работна рамка: Python Software Foundation
Софтуер
Популярен независимо разработен софтуер
Работни рамки за уеб приложения
Инструменти за разработчици на Python
Част ІX. Приложения
А. Инсталация и настройки
Б. Отговори на упражненията
Индекс
Марк Луц е учител, писател и софтуерен разработчик на Python. Той е автор на книгите Programming Python и Python Pocket Reference, издадени от O"Reilly. Марк се занимава с Python от 1992, като преподава знанията си на други от 1997 и е провел повече от 90 обучения по Python до началото на 2003. Освен това той има бакалавърска и магистърска степен по компютърни науки от Университета в Уисконсин и през последните две десетилетия се е занимавал с компилатори, програмни инструменти, приложения и разпределени клиент/сървър системи. Марк води съвсем обикновен живот в Колорадо, където живее заедно с децата си. Можете да се свържете с него на електронната му поща lutz@rmi.net или да посетите неговата уеб страница http://www.rmi.net/~lutz.
Въпреки че е изследовател, Дейвид Ашер прекара последните няколко години в софтуерния бизнес, като се съсредоточи в предоставяне на професионални инструменти за програмисти, които използват програмни езици със свободен код. След като беше ръководител на разработката на интегрираната среда Komodo (за програмисти на различни програмни езици, включително Python, написана почти изцяло на Python), сега той отговаря за цялата дирекция на ActiveState на Sophos, разпространяващо инструменти за разработчици и услуги за Python, Perl, Tcl, PHP и други езици. Освен това Дейвид беше директор на Python Software Foundation от нейното създаване и помогна при организирането на различни конференции за Python и други събития.
Въпреки че е изследовател, Дейвид Ашер прекара последните няколко години в софтуерния бизнес, като се съсредоточи в предоставяне на професионални инструменти за програмисти, които използват програмни езици със свободен код. След като беше ръководител на разработката на интегрираната среда Komodo (за програмисти на различни програмни езици, включително Python, написана почти изцяло на Python), сега той отговаря за цялата дирекция на ActiveState на Sophos, разпространяващо инструменти за разработчици и услуги за Python, Perl, Tcl, PHP и други езици. Освен това Дейвид беше директор на Python Software Foundation от нейното създаване и помогна при организирането на различни конференции за Python и други събития.