Продолжаем обзор книг по Python для начинающих программистов.
И сегодня на очереди «Знакомство с Python» Дэна Бейдера в соавторстве с еще тремя разработчиками, преподавателями, писателями. Все они так или иначе связаны с проектом Real Python.
А сам Дэн Бейдер основатель Real Python, а также автор популярной email-рассылки по питону и книги «Чистый Python», на которую я уже делал обзор и которую горячо рекомендую.
И если «Чистый Python» была написана для бывалых разработчиков, то вот «книга Знакомство с Python» написана для новичков. И уже в предисловии чувствуется легкость и лаконичность изложения.
Издание содержит около 500 страниц и состоит из двух частей: первая про сам язык, а вторая посвящена разным задачам, которые можно решать с помощью Питона.
Содержание.
Что ж, начнем с первой части, первы три главы которой посвящены общим вопросам, установке python в разных операционных системах и написанию «Hello World» и так далее. Всё написано и разжевано довольно хорошо. Читается легко.
Далее вас познакомят со строками, включая строковые методы. При этом сама глава про строки разбита на небольшие разделы, после которых идут небольшие упражнения для закрепления. Не ленитесь и выполняйте их. Иначе как еще вы планируете стать программистом.
Также к книге прилагается репозиторий на github, с которого вы можете скачать все примеры и решения к упражнениям для самопроверки. Помимо репозитория книга содержит много ссылок на полезные материалы: статьи, видео и так далее. Многие из этих дополнений вы можете почитать на сайте realpython.com. Часть из них доступна бесплатно, а часть только по подписке. Разумеется, все они на английском языке, хотя там такой простой английский, что можно понять с минимальными знаниями.
5 глава посвящена числам. В ней тоже всё понятно, единственное авторы уделили 3 страницы комплексным числам и с одной стороны — круто, что в Python они есть, а с другой стороны — это очень специфические вычисления, которые нужны только математикам. Если вы студент физмата или работаете в сфере, сопряженной со сложными математическими вычислениями, то — да, комплексные числа будут вам полезны. В остальных случаях они вообще не нужны. В прошлом году я пересмотрел, наверное, часа полтора разных видео про комплексные вычисления в надежде найти хоть что-то, за что можно зацепиться и показать в нашем курсе по Питону. Мол «ребята, смотрите, мы тут можем сделать расчеты используя не вещественное число, а комплексное». Но там так всё запутанно, что мне пришлось отказаться от данной идеи. А Дэн Бейдер всё-таки решил осветить эту тему.
После чисел мы переходим к функциям и циклам, довольно странное сочетание, однако по этим темам можно судить о глубине изложения в книге.
И да, книга для новичков, только база, но эта база вам необходима, чтобы двигаться дальше. Как по книге, так и в целом — в рамках обучения программированию. Хочу отдельно отметить примеры, которые приводят авторы и упражнения, которые они задают. И они довольно занятные. Например, написать функцию, которая подсчитает и выведет как будет меняться наш банковский вклад с течением времени. Это отличная задача. Она сразу и на функции, и на циклы, и на работу с числами, а самое главное, она из реального мира. А такие задачи всегда ценны и кстати именно за такие задачи Тони Гэддис занимает одно из первых мест в нашем рейтинге. И у Дэна Бейдера их тоже много.
7 глава посвящена поиску и отладке ошибок, правда делается это в IDLE. С одной стороны я не люблю IDLE, а с другой стороны поиск ошибок — это полезный навык.
Далее идут условия и операторы сравнения, а ближе к концу главы Дэн Бейдер начинает подмешивать if и else в циклы, а потом еще и добавляет туда исключения, а после оборачивает код в функцию, что делает примеры совсем интересными.
После мы переходим к кортежам, спискам и словарям. А затем и к ООП. ООП и классы в книге даны в самом минимуме: объекты, классы, атрибуты, методы, базовое наследование. Ничего сверхъестественного. Это не Исчерпывающее руководство Дэвида Бизли.
Далее мы переходим к модулям и пакетам, а затем к работе с файлами и каталогами. Тут же рассматривается обработка CSV-файлов, а это значит, что мы приближаемся ко второй части книги про применение Питона. Как раз мы уже где-то на трёхсотой странице, что чуть дальше половины.
В 13 главе мы знакомимся с менеджером пакетов pip и это открывает перед нами двери в мир программирования, ведь теперь мы можем ставить сторонние пакеты и библиотеки, расширяя возможности Python.
Применение Python
И первый пакет, который рассматривает Дэн — это PyPDF2 для работы с PDF документами. Полезно? Конечно! При этом к концу главы он рассказывает про библиотеку ReportLab, а это мощный конструктор PDF-документов практически любой сложности.
Далее мы переходим к работе с базами данных на примере SQLite. Информации немного, пробежались чисто по верхушкам, но для начального ознакомления вполне подойдет.
В 16 главе Дэн Бейдер рассматривает парсинг веб-сайтов, а значит нам потребуются регулярные выражения, пакеты для работы с сетевыми соединениями, библиотека для парсинга HTML-страниц. Всё это тут есть.
Тут же рассматривается пакет MechanicalSoup для запуска консольных браузеров. Довольно забавная библиотека, я её потестил прямо как написано в книге и у меня всё получилось. Без каких-то подводных камней.
17 глава посвящена научным вычислениям в NumPy и построению графиков с помощью MatPlotlib
И наконец восемнадцатая, последняя глава, посвящена созданию программ с графическим интерфейсом на EasyGUI и Tkinter. Не будут это комментировать, я Tkinter не очень люблю.
Хочу сразу отметить, что автор не кидает нас из одной темы в другую. Нет. Всё его повествование, в том числе примеры и упражнения для самоконтроля связаны в такую единую систему.
Так, например, в конце книги мы пишем программу с графическим интерфейсом для конвертации температуры из градусов Цельсия в Фаренгейты. И если вы внимательно читали «Знакомство с Python», а также выполняли все упражнения, то часть программы в виде функции у вас уже будет написана, так как такое задание было ранее. Такие детали очень важны в общем повествовании.
Заключение
И как вы, наверное, уже догадались я рекомендую Дэна Бейдера и ставлю Знакомство с Python достаточно высоко в нашем рейтинге лучших книг по Питону. Но не на самый верх. С одной стороны, она написана легко и понятно, но всё же немного суховато особенно по отношению к лидерам. Лично мне не хватило какой-то изюминки. Но в целом она хороша.