Книга: Чистый Python. Тонкости программирования для профи
Назад: Что питонисты говорят о книге «Чистый Python. Тонкости программирования для профи»
Дальше: 1. Введение

Предисловие

Прошло почти десять лет с тех пор, как я впервые познакомилась с языком программирования Python. Когда много лет назад я впервые попробовала заняться им, то, признаюсь, начала с неохотой. До того я программировала на другом языке, и совсем неожиданно на работе меня определили в ту команду, где все использовали Python. Это стало началом моего собственного путешествия по миру Python.

Когда меня впервые познакомили с языком Python, то сказали, что все будет легко и я освою его очень быстро. Когда же я спросила коллег о ресурсах по изучению Python, мне дали всего одну-единственную ссылку на официальную документацию. Чтение ее поначалу сбивало с толку, и ушло достаточно много времени, прежде чем я научилась уверенно в ней ориентироваться, не говоря уже о том, чтобы разбираться. Нередко мне приходилось искать решения на веб-сайте StackOverflow.

Придя из другого языка программирования, я не просто нуждалась в каком-нибудь источнике, посвященном обучению программированию или дающем пояснения по поводу классов и объектов. Я искала конкретные ресурсы, которые научили бы меня функциональным средствам языка Python, объяснили разницу между ним и другими языками и то, как написание исходного кода на Python отличается от написания его на другом языке.

Я потратила немало лет, чтобы полностью осознать ценность этого языка. Читая книгу Дэна, я досадовала, что у меня не было ее тогда, когда много лет назад я только начала изучать Python.

Например, одним из многих уникальных функциональных средств языка Python, которое поначалу меня удивило больше всего, была конструкция включения в список. Как Дэн отмечает в своей книге, обычной реакцией тех, кто только перешел на Python с другого языка, становятся слова «Так вот как они используют циклы for!». Помню один из первых комментариев с обзором исходного кода, который я получила, когда начинала программировать на Python: «Почему бы здесь не применить включение в список?» Дэн четко разъясняет это понятие в главе 6, начиная с показа организации цикла в чисто питоновском стиле и постепенно достраивая его до итераторов и генераторов.

В разделе 2.5 Дэн рассматривает различные способы форматирования строковых значений в Python. Форматирование строковых значений — это одна из тех вещей, которые бросают вызов Дзену языка Python, гласящему, что должен существовать один и желательно только один очевидный способ сделать это. Дэн показывает разные способы, в том числе мое любимое новое дополнение к языку, f-строки, а также объясняет плюсы и минусы каждого метода.

Глава «Питоновские методы повышения производительности» представляет собой еще один великолепный ресурс. Она охватывает аспекты, лежащие за пределами языка программирования Python, а также содержит советы о том, как отлаживать свои программы, как управлять библиотеками, от которых они зависят, и дает вам возможность заглянуть внутрь байткода Python.

Для меня большая честь и удовольствие представить книгу «Чистый Python. Тонкости программирования для профи» моего друга Дэна Бейдера.

Участвуя в развитии языка Python в качестве разработчика ядра CPython, я общаюсь со многими членам сообщества. На своем пути я встретила много наставников, помощников и завела много новых друзей. Они напоминают мне о том, что Python — это не только исходный код, но прежде всего — сообщество.

Чтобы освоить программирование на Python, нужно не только понимать теоретические аспекты языка. Для достижения этой цели придется понять и принять общие правила и самые лучшие практические приемы, используемые сообществом.

Книга Дэна поможет вам в этом путешествии. Я убеждена, что, прочитав ее, вы почувствуете себя увереннее в написании программ на Python.

Мариатта Виджайя (Mariatta Wijaya),   разработчик ядра Python (mariatta.ca)

Комментарии переводчика

Весь материал настоящей книги протестирован в среде Windows 10. При тестировании исходного кода за основу взят Python версии 3.6.4 (время перевода — апрель 2018 года).

Хотя в настоящей книге установка и применение сторонних библиотек практически не рассматривается, тем не менее в комментарии переводчика включена информация о базовом наборе инструментов, необходимых для дальнейшей работы. Эта информация ни к чему не обязывает, но служит прекрасной отправной точкой для всех, кто интересуется программированием на Python.

Базовый набор библиотек для разработчика

В обычных условиях библиотеки Python можно скачать и установить из каталога библиотек Python PyPi (/) с помощью менеджера пакетов pip. Однако следует учесть, что в ОС Windows для работы некоторых библиотек, в частности SciPy, Scikit-learn и Scikit-image, требуется, чтобы в системе была установлена библиотека Numpy+MKL. Библиотека Numpy+MKL привязана к библиотеке Intel® Math Kernel Library и включает в свой состав необходимые динамические библиотеки (DLL) в каталоге numpy.core. Библиотеку Numpy+MKL следует скачать из хранилища whl-файлов на веб-странице Кристофа Голька из лаборатории динамики флуоресценции Калифорнийского университета в г. Ирвайн (/) и установить при помощи менеджера пакетов pip как whl (соответствующая процедура установки пакетов в формате whl описана ниже). Например, для 64-разрядной операционной системы Windows и среды Python 3.6 команда будет такой:

pip install numpy-1.14.2+mkl-cp36-cp36m-win_amd64.whl

Такой режим установки также касается библиотек scipy, scikit-image и scikit-learn. Стоит также отметить, что эти особенности установки не относятся к ОС Linux и Mac. Далее приводятся сведения об основополагающих библиотеках.

• NumPy — основополагающая библиотека, необходимая для научных вычислений на Python.

• SciPy — библиотека, используемая в математике, естественных науках и инженерном деле. Требует наличия numpy+mkl.

• Matplotlib — библиотека для работы с двумерными графиками.

• Pandas — инструмент для анализа структурных данных и временных рядов. Требует наличия numpy и некоторых других. Для чтения файлов Excel требует установки библиотеки xlrd.

• Scikit-learn — интегратор классических алгоритмов машинного обучения. Требует наличия numpy+mkl.

• Scikit-image — коллекция алгоритмов для обработки изображений. Требует наличия numpy+mkl.

• Jupyter — интерактивная онлайновая вычислительная среда.

• PyQt5 — библиотека инструментов для программирования графического интерфейса пользователя, требуется для работы инструментальной среды программирования Spyder.

• Spyder — инструментальная среда программирования на Python.

От издательства

Ваши замечания, предложения, вопросы отправляйте по адресу (издательство «Питер», компьютерная редакция).

Мы будем рады узнать ваше мнение!

На веб-сайте издательства вы найдете подробную информацию о наших книгах.

Назад: Что питонисты говорят о книге «Чистый Python. Тонкости программирования для профи»
Дальше: 1. Введение