Python для инженерных задач. Самоучитель

Python для инженерных задач. Самоучитель

Python для инженерных задач. Самоучитель
Автор: Ильин Евгений Вячеславович, Ярошенко Алексей Андреевич
Дата выхода: 2023
Издательство: БХВ-Петербург
Количество страниц: 679
Размер файла: 37,5 МБ
Тип файла: PDF
Добавил: Aleks-5
 Проверить на вирусы

Предисловие ................................................................................................................... 13

Для кого эта книга? ......................................................................................................... 13

Структура книги .............................................................................................................. 13

Благодарности ................................................................................................................. 16

Введение .......................................................................................................................... 17

Общие сведения о Python ............................................................................................... 17

Области применения Python .......................................................................................... 18

Зачем Python инженеру? ................................................................................................. 20

Типы языков программирования ................................................................................... 22

Компилируемые языки программирования ........................................................... 22

Интерпретируемые языки программирования ...................................................... 24

Языки программирования, компилируемые в байт-код ....................................... 25

Исходные коды к книге .................................................................................................. 27

ЧАСТЬ 1. БАЗОВЫЕ ПОНЯТИЯ И ВСТРОЕННЫЕ ТИПЫ .............................................. 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 (РЕР) .............................................................................. 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

Создание списков с помощью инструкцииfоr ... in .................................................. 123

Создание последовательности целых чисел. Класс range ......................................... 125

Перебор элементов с нумерацией. Класс enumerate .................................................. 127

Параллельный перебор элементов из нескольких коллекций. Класс zip ................. 128

Заключение .................................................................................................................... 132

-ГЛАВА6-

Словари ......................................................................................................................... 133

Что такое «словари» и зачем они нужны? .................................................................. 133

Создание словарей ........................................................................................................ 134

Основные операции со словарями ............................................................................... 136

Ограничения на типы ключей ...................................................................................... 140

Обход элементов словаря с помощью цикла/оr ........................................................ 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() .................................................................................... 1 77

f-строки .......................................................................................................................... 181

Заключение .................................................................................................................... 187 

ЧАСТЬ 11. ОСНОВНЫЕ подходы ................................................................................ 189

-ГЛАВА lОФункции ........................................................................................................................ 191

Создание функций ........................................................................................................ 191

«Утиная» типизация...................................................................................................... 19 5

Именованные параметры функций ............................................................................. 197

Параметры со значениями по умолчанию .................................................................. 198

Функции с переменным числом позиционных параметров ...................................... 201

Функции с переменным числом именованных параметров ...................................... 202

Разделители параметров / и * ....................................................................................... 205

Функции и глобальные переменные ........................................................................... 208

Заключение .................................................................................................................... 211

- ГЛАВА 11 -

Функции как объекты ................................................................................................ 212

Функция - это тоже объект ........................................................................................ 212

Анонимные функции .................................................................................................... 214

Строки документации ................................................................................................... 218

Декораторы .................................................................................................................... 221

Заключение .................................................................................................................... 228

-ГЛАВА 12-

Модули и пакеты модулей ......................................................................................... 229

Создание и импорт модулей ........................................................................................ 229

Выполнение кода модулей при импорте. Переменные _пате_ и _file_ .......... 232

Пакеты модулей ............................................................................................................ 236

Заключение .................................................................................................................... 240

- ГЛАВА 13 -

Объектно-ориентированное проrраммирование. Создание классов ................ 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

Знакомство с Муру ................................................................................................ 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

ЧАСТЬ 111. PYTHON ДЛЯ НАУЧНЫХ ВЫЧИСЛЕНИЙ ................................................. 467

-ГЛАВА 25-

Массивы из библиотеки N umPy ............................................................................... 469

Массивы NumPy : ........................................................................................................... 469

Способы создания массивов ........................................................................................ 472

Основные операции над массивами ............................................................................ 4 77

Индексация, срезы и виды ............................................................................................ 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

Диаграммы рассеяния ................................................................................................... 54 7

Графики в полярной системе координат .................................................................... 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 

Книга предназначена для изучения языка Python с ориентацией на использование его в инженерных и научных вычислениях, начиная с установки интерпретатора и изучения основ языка и до применения специализированных библиотек. Основные темы касаются встроенных типов языка, функций и аннотации типов, особенностей динамической типизации, форматирования и обработки текста, в том числе с использованием регулярных выражений, работа с файлами. Подробно рассматриваются основные идеи объектно-ориентированного программирования и его особенности в Python. Также затрагиваются темы обработки исключений, тестирования приложений, описываются некоторые модули из стандартной библиотеки, а также множество сторонних библиотек, в частности, NumPy для математических вычислений, Pandas для обработки табличных данных, Matplotlib для построения различных видов графиков, библиотеки для работы с различными форматами файлов. Рассматриваются такие инструменты, как IPython и JupyterLab, применяемые в научных и инженерных областях.

Для студентов инженерных специальностей, а также для начинающих изучать язык

В настоящее время Python является одним из наиболее популярных языков программирования. Благодаря легкости его изучения и удобству использования Python нашел применение в различных областях: начиная с создания веб-сервисов, приложений для ПК, маленьких скриптов, выполняющих однотипные задачи, до работы с нейронными сетями,  статистики в машинном обучении, обработки данных. Также Python широко применяется для решения научных и инженерных задач благодаря многочисленным сторонним библиотекам. Python — лаконичный язык, он позволяет быстро писать код, реализующий требуемый алгоритм, отлаживать его и гарантировать работоспособность.. Python закрепился в научной среде и в образовании и является де-факто стандартным инструментом для решения математических задач, обработки табличных данных, построения графиков многих видов.

  • Установка интерпретатора Python
  • Основы языка Python: описание синтаксиса и встроенных типов
  • Функции и аннотации типов
  • Объектно-ориентированное программирование
  • Обработка исключений
  • Работа с текстом и регулярные выражения
  • Установка сторонних библиотек и использование виртуальных окружений
  • Работа с файлами и файловой системой
  • Тестирование приложений
  • Библиотека NumPy для математических расчетов
  • Форматы хранения данных, используемые в научной среде
  • Построение двумерных и трехмерных графиков с помощью библиотеки Matplotlib
  • Работа с табличными данными с помощью библиотеки Pandas
  • Среды выполнения скриптов IPython и JupyterLab

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


Похожее:

Список отзывов:

Нет отзывов к книге.