
Книга предназначена для изучения языка Python с ориентацией на использование его в инженерных и научных вычислениях, начиная с установки интерпретатора и изучения основ языка и до применения специализированных библиотек. Основные темы касаются встроенных типов языка, функций и аннотации типов, особенностей динамической типизации, форматирования и обработки текста, в том числе с использованием регулярных выражений, работа с файлами. Подробно рассматриваются основные идеи объектно-ориентированного программирования и его особенности в Python. Также затрагиваются темы обработки исключений, тестирования приложений, описываются некоторые модули из стандартной библиотеки, а также множество сторонних библиотек, в частности, NumPy для математических вычислений, Pandas для обработки табличных данных, Matplotlib для построения различных видов графиков, библиотеки для работы с различными форматами файлов. Рассматриваются такие инструменты, как IPython и JupyterLab, применяемые в научных и инженерных областях.
Для студентов инженерных специальностей, а также для начинающих изучать язык
Изучение языка Python с ориентацией на использование его в инженерных и научных вычислениях.
В настоящее время Python является одним из наиболее популярных языков программирования. Благодаря легкости его изучения и удобству использования Python нашел применение в различных областях: начиная с создания веб-сервисов, приложений для ПК, маленьких скриптов, выполняющих однотипные задачи, до работы с нейронными сетями, статистики в машинном обучении, обработки данных. Также Python широко применяется для решения научных и инженерных задач благодаря многочисленным сторонним библиотекам. Python — лаконичный язык, он позволяет быстро писать код, реализующий требуемый алгоритм, отлаживать его и гарантировать работоспособность.. Python закрепился в научной среде и в образовании и является де-факто стандартным инструментом для решения математических задач, обработки табличных данных, построения графиков многих видов,.
Эта книга предназначена для обучения языку Python именно в таком направлении. Книга начинается с самых основ языка Python, его синтаксиса и базовых типов, затем описываются основные идеи объектно-ориентированного программирования и их реализация на Python. Наконец, рассказывается о стандартной библиотеке Python и множестве сторонних библиотек и инструментов, облегчающих работу в инженерной и научных областях.
- Установка интерпретатора Python
- Основы языка Python: описание синтаксиса и встроенных типов
- Функции и аннотации типов
- Объектно-ориентированное программирование
- Обработка исключений
- Работа с текстом и регулярные выражения
- Установка сторонних библиотек и использование виртуальных окружений
- Работа с файлами и файловой системой
- Тестирование приложений
- Библиотека NumPy для математических расчетов
- Форматы хранения данных, используемые в научной среде
- Построение двумерных и трехмерных графиков с помощью библиотеки Matplotlib
- Работа с табличными данными с помощью библиотеки Pandas
- Среды выполнения скриптов IPython и JupyterLab
Красивое лучше, чем уродливое. Явное лучше, чем неявное. Простое лучше, чем сложное. Из кодекса «Дзен Python»

Евгений Ильин — кандидат технических наук, доцент кафедры «Радиофизика, антенны и микроволновая техника», входящей в состав института «Радиоэлектроника, инфокоммуникации и информационная безопасность» Московского авиационного института (национального исследовательского университета). Ведет курсы «Языки программирования в задачах радиофизики» и «Моделирование электродинамических задач численными методами». Сфера интересов и компетенций — языки программирования (Python, Rust и Java), электродинамика, антенны и устройства СВЧ, а также алгоритмы для их моделирования.
Книгу “Python для инженерных задач” можно купить в нашем интенет-магазине.
Предисловие. 13
Для кого эта книга?. 13
Структура книги. 13
Благодарности. 16
Введение. 17
Общие сведения о Python. 17
Области применения Python. 18
Зачем Python инженеру?. 20
Типы языков программирования. 22
Компилируемые языки программирования. 22
Интерпретируемые языки программирования. 24
Языки программирования, компилируемые в байт-код. 25
Исходные коды к книге. 27
ЧАСТЬ I. Базовые понятия и встроенные типы.. 29
– ГЛАВА 1 –
Первое знакомство с Python. 31
Установка интерпретатора Python под Windows. 31
Hello, world! Работаем в интерактивном режиме. 37
Создание переменных. 39
Заключение. 43
– ГЛАВА 2 –
Простейшие типы и математика в Python. 45
Коротко о терминологии. 45
Целые числа. 46
Числа с плавающей точкой. 47
Комплексные числа. 49
Логический (булев) тип переменных. 52
Объект None. 53
Математические операторы.. 54
Приоритет операторов. 57
Инструкции присваивания. 58
Математические функции и модуль math. 59
Модуль cmath. 65
Заключение. 66
– ГЛАВА 3 –
Пишем скрипты на Python. 68
Создание скриптов. 68
Выполнение скриптов. 70
Комментарии и указание кодировки файла скрипта. 72
Инструкция ветвления if … elif … else. 74
Переносы строк. 79
Выражение if … else. 80
Цикл while. 81
Оператор :=. 84
Инструкция assert 86
Python Enhancement Proposals (PEP) 87
Заключение. 88
– ГЛАВА 4 –
Списки, кортежи и массивы.. 90
Способы хранения данных. 90
Массивы.. 90
Списки. 92
Кортежи. 93
Создание списков. 94
Создание кортежей. 95
Создание массивов. 96
Преобразование списков, кортежей и массивов друг в друга. 98
Доступ к элементам по индексу. 99
Срезы.. 101
Выполнение присваивания для сложных объектов. Операторы is и is not 104
Операторы in и not in. 109
Распаковка элементов коллекций. 109
Основные методы классов list, tuple и array. 111
Заключение. 118
– ГЛАВА 5 –
Перебор элементов коллекций. 119
Инструкция for … in. 119
Создание списков с помощью инструкции for … in. 123
Создание последовательности целых чисел. Класс range. 125
Перебор элементов с нумерацией. Класс enumerate. 127
Параллельный перебор элементов из нескольких коллекций. Класс zip. 128
Заключение. 132
– ГЛАВА 6 –
Словари. 133
Что такое «словари» и зачем они нужны?. 133
Создание словарей. 134
Основные операции со словарями. 136
Ограничения на типы ключей. 140
Обход элементов словаря с помощью цикла for. 141
Заключение. 143
– ГЛАВА 7 –
Множества. 144
Что такое множества и зачем они нужны?. 144
Создание множеств. 144
Создание неизменяемых множеств. 146
Основные операции над множествами. 146
Методы и операторы классов set и frozenset 147
Заключение. 152
– ГЛАВА 8 –
Строки. 153
Создание строк. 154
Многострочные литералы.. 154
Вставка символов Unicode. 158
«Сырые» строки. 159
Создание строкового представления чисел и других объектов. 160
Базовые операции над строками. 160
Некоторые методы класса str. 162
Заключение. 169
– ГЛАВА 9 –
Форматирование строк. 170
Использование оператора %.. 171
Использование метода format() 177
f-строки. 181
Заключение. 187
Часть II. Основные подходы.. 189
– ГЛАВА 10 –
Функции. 191
Создание функций. 191
«Утиная» типизация. 195
Именованные параметры функций. 197
Параметры со значениями по умолчанию.. 198
Функции с переменным числом позиционных параметров. 201
Функции с переменным числом именованных параметров. 202
Разделители параметров / и *. 205
Функции и глобальные переменные. 208
Заключение. 211
– ГЛАВА 11 –
Функции как объекты.. 212
Функция — это тоже объект. 212
Анонимные функции. 214
Строки документации. 218
Декораторы.. 221
Заключение. 228
– ГЛАВА 12 –
Модули и пакеты модулей. 229
Создание и импорт модулей. 229
Выполнение кода модулей при импорте. Переменные __name__ и __file__. 232
Пакеты модулей. 236
Заключение. 240
– ГЛАВА 13 –
Объектно-ориентированное программирование. Создание классов. 241
Что такое объектно-ориентированное программирование?. 241
Создание классов. 244
Видимость полей и методов классов. 248
Свойства. 251
Поля класса. 252
Методы класса. 255
Статические методы.. 257
Заключение. 259
– ГЛАВА 14 –
Объектно-ориентированное программирование.
Наследование и полиморфизм.. 260
Что такое наследование классов?. 260
Наследование классов. 260
Абстрактные базовые классы.. 267
Что такое полиморфизм?. 273
Множественное наследование. 273
Функции для определения родительских отношений классов. Класс object 280
Заключение. 282
– ГЛАВА 15 –
«Магические» методы классов и перегрузка операторов. 284
«Магические» методы классов. 284
Примеры перегрузки операторов. 286
Заключение. 296
– ГЛАВА 16 –
Сторонние библиотеки и инструменты для работы с ними. 298
Установка пакетов с помощью pip. 298
Файл зависимостей requirements.txt 304
Обновление и удаление пакетов. 305
Заключение. 307
– ГЛАВА 17 –
Виртуальные окружения. 308
Программа venv. 308
Работа с виртуальными окружениями. 311
Программа Poetry. 311
Создание проекта с помощью Poetry. Файл pyproject.toml 312
Создание виртуального окружения для проекта с помощью Poetry. 315
Менеджер пакетов и проектов uv. 319
Создание проекта с помощью uv. 320
Создание виртуального окружения для проекта с помощью uv. 322
Заключение. 326
– ГЛАВА 18 –
Аннотации типов. 328
Проблемы динамической типизации. 328
Что такое «аннотации типов» и зачем они нужны?. 329
Знакомство с Mypy. 331
Указание простейших типов и коллекций. 332
Обобщенные типы.. 338
Заключение. 342
– ГЛАВА 19 –
Обработка исключений. 344
Обработка ошибок без использования исключений. 344
Что такое исключения, как и зачем их ловить?. 345
Перехват исключений. 349
Пользовательские исключения. Наследование исключений. 352
Конструкция try … except … else … finally. 358
Заключение. 363
– ГЛАВА 20 –
Запись и чтение файлов. 364
Открытие файла и запись текстовых данных. 364
Закрытие файлов. Инструкция with. 369
Чтение текстовых данных. 371
Двоичные строки. 373
Запись и чтение двоичных данных. 378
Коротко о сериализации и десериализации. 383
Заключение. 386
– ГЛАВА 21 –
Работа с файловой системой. 387
Проблема формирования путей до файлов. 387
Формирование путей до файлов. Модуль os.path. 388
Формирование путей до файлов. Модуль pathlib. 395
Создание, копирование, перемещение и удаление файлов и каталогов. 399
Создание пустых файлов. 399
Создание каталогов. 399
Копирование файлов. 401
Копирование каталогов. 403
Удаление файлов и каталогов. 404
Переименование и перемещение файлов и каталогов. 405
Заключение. 408
– ГЛАВА 22 –
Передача параметров через командную строку. 410
Зачем это надо?. 410
Разбор параметров командной строки без использования библиотек. 412
Разбор командной строки с помощью модуля argparse. 415
Заключение. 425
– ГЛАВА 23 –
Регулярные выражения. 427
Что такое «регулярные выражения» и когда их используют?. 427
Символы подстановки. 428
Параметры регулярных выражений. 433
Инструкции группировки. 434
Поиск и замена с помощью регулярных выражений. 440
Коротко про функции из модуля re. 444
Заключение. 444
– ГЛАВА 24 –
Тестирование приложений. 446
Зачем нужны тесты, и какие они бывают?. 446
Создание тестов с помощью модуля unittest 447
Добавим еще тесты.. 453
Подготовка данных для тестов. 456
Способы запуска тестов. 458
Тесты в строках документации. 460
Заключение. 464
ЧАСТЬ III. Python для научных вычислений. 467
– ГЛАВА 25 –
Массивы из библиотеки NumPy. 469
Массивы NumPy. 469
Способы создания массивов. 472
Основные операции над массивами. 477
Индексация, срезы и виды.. 480
Формы массивов. 484
Транслирование (broadcasting) 490
Булевы массивы и фильтрация элементов по условию.. 492
Использование целочисленных массивов в качестве индексов. 495
Заключение. 496
– ГЛАВА 26 –
Форматы файлов для хранения числовых данных. 498
Текстовые файлы, хранящие данные в столбцах. 498
Работа с данными в формате CSV.. 504
Файлы форматов NPY и NPZ. 506
Файлы формата HDF5. 508
Создание файлов в формате HDF5. 509
Сторонние приложения для работы с файлами формата HDF5. 511
Чтение файлов в формате HDF5. 513
Другие форматы данных. 514
Заключение. 515
– ГЛАВА 27 –
Основы построения графиков с помощью библиотеки Matplotlib. 517
Установка библиотеки и первые примеры графиков. 517
Настройка внешнего вида кривых на графиках. 521
Способы задания цвета. 522
Стили линий. 524
Маркеры.. 525
Краткий способ задания внешнего вида кривых. 528
Несколько графиков в одних осях. 528
Добавление легенды.. 530
Создание нескольких графиков в одном окне на разных осях. 532
Настройка осей графика. 535
Объектно-ориентированный подход к построению графиков. 540
Заключение. 545
– ГЛАВА 28 –
Построение с помощью библиотеки Matplotlib более сложных графиков. 547
Диаграммы рассеяния. 547
Графики в полярной системе координат. 550
Столбчатые диаграммы.. 553
Круговые диаграммы.. 558
Построение трехмерных графиков. 562
Линии уровня. 571
Отображение векторов. 575
Заключение. 579
– ГЛАВА 29 –
Знакомство с Pandas. 581
Установка библиотеки Pandas. 581
Чтение файлов в формате CSV.. 582
Создание экземпляров класса DataFrame. 589
Выбор элементов и фильтрация данных из DataFrame. 591
Обработка данных с помощью DataFrame. 598
Группировка. 607
Заключение. 611
– ГЛАВА 30 –
Библиотека SciPy: решение сложных научных и инженерных задач. 613
Физические константы и специальные математические функции. 613
Преобразование Фурье. 619
Заключение. 640
– ГЛАВА 31 –
Интерактивные среды IPython и JupyterLab. 642
IPython — более удобный REPL. 642
От IPython к JupyterLab. 648
Заключение. 659
Заключение ко всей книге. 661
Литература. 662
Предметный указатель. 663
