Hajm 464 sahifa
2019 yil
«Непрактичный» Python. Занимательные проекты для тех, кто хочет поумнеть
Kitob haqida
Книга поможет читателям, самостоятельно осваивающим язык Python, отточить уже имеющиеся навыки программирования, выработать новые и получить удовольствие от этого процесса. Ее можно рассматривать как свою вторую книгу по языку Python. Книга организована так, чтобы дополнять обычный учебник для начинающих или вводный курс. Для этого применен проектный подход, позволяющий обойтись без тщательного «пережевывания» материла, который вы уже изучили.
По мере работы над проектами читатели будут использовать анализ марковских цепей для написания хокку, метод Монте-Карло для моделирования финансовых рынков, наложение снимков для улучшения астрофотосъемки и генетические алгоритмы для разведения армии гигантских крыс. В итоге читатели получат практический опыт работы с такими модулями, как pygame, Pylint, pydocstyle, tkinter, python-docx, matplotlib и pillow.
Для программистов на языке Python.
Внимательно прочитал 7 глав, дальше еще 3 бегло просмотрел и дальше бросил. Итого осилил 10 глав из 15.
Первая проблема книги это очень низкое качество перевода. С самого начала поймал себя на мысли, что постоянно не могу уловить, что же хочет делать автор и зачем. Проще сразу листать до кода и уже по коду разбираться, что тут происходит.
Потом начал обращать внимание, что местами в тексте встречаются просто очевидные перлы.
Например ‘Поэты часто «заправляют насос» путем имитации более ранних стихов,...’ (стр 225). И таких примеров в книге полно.
Пошарил по отзывам на другие работы Андрея Логунова и обнаружил, что я не один кто на него жалуется.
Но перевод это, к сожалению, пол беды. К автору тоже много вопросов. Он постоянно делает и пишет какие то очень странные вещи.
Например на стр 74, в блоке кода №1, он удаляет пробелы из строки вот так: ‘’.join(string_var.split())
Причем строкой ниже, он уже удаляет тире обычным способом: string_var.replace(‘-’, ’’)
В главе 4 он пишет сначала программу для маршрутного шифра, а потом для зигзагообразного. Но можно легко показать что зигзагообразный шифр это частный случай маршрутного (случай когда перестановочная матрица в 2 столбца и ключ [0, 1]).
Однако автор почему то пишет новую программу с нуля. Странно... достаточно чуть чуть подправить старую.
В главе 7 автор выполняет имитационное моделирование процесса селекции крыс-гигантов. И снова делает странные вещи...
Казалось бы совершенно естественно объявить класс Rat. Для этой постановки хватило бы двух свойств: пол и вес, но был бы хороший задел на случай усложнения модели. Например, если в будущих версиях потребуется учитывать, скажем, возраст крыс.
Кстати даже решении автора сроки селекции получаются такие, что некоторые крысы вполне могут умирать от старости.
Также естественно было бы моделировать размножение при помощи @classmethod, который получал бы на входе двух родителей а на выходе выдавал бы несколько детей.
Еще можно было бы переопределить магические методы __eq__ и __lt__ и сортировать крыс по весу функцией sorted().
Однако автор упорно не хочет применять методы ООП и моделирует крыс просто как список их весов. При этом пол крысы отличает тоже по весу. Совсем уж странное решение.
Даже в его варианте достаточно было просто определить два списка, один для самцов другой для самок, а не принимать очень странные допущения, чтобы потом писать еще более странный код.
Потом автор показывает подбор кода к сейфу при помощи генетического алгоритма.
Но с теми допущениями как в книге, эта задача решается при помощи немного умного перебора, гарантированно за менее чем 100 итераций. Что хотел показать автор тоже не понятно.
В общем так себе книга, не рекомендую. Теоретически могла бы школьникам для подготовки самостоятельного проекта. Но тоже не факт, слишком много недостатков.
Отличная книга! Довольно сложные вещи разбираются от простого к сложному подробно, занимательно и с уместным юмором! Книга подойдет тем, кто уже имеет навык программирования в Питоне и готов самостоятельно отточить свои знания в практической области!

Sharhlar, 2 sharhlar2