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

Оглавление⌄
Предисловие ................................................................................................................... 13 Для кого эта книга? ......................................................................................................... 13 Структура книги .............................................................................................................. 13 Благодарности ................................................................................................................. 16 Введение .......................................................................................................................... 17 Общие сведения о Python ............................................................................................... 17 Области применения Python .......................................................................................... 18 Зачем Python инженеру? ................................................................................................. 20 Типы языков программирования ................................................................................... 22 Компилируемые языки программирования ........................................................... 22 Интерпретируемые языки программирования ...................................................... 24 Языки программирования, компилируемые в байт-код ....................................... 25 Исходные коды к книге .................................................................................................. 27 ЧАСТЬ 1. БАЗОВЫЕ ПОНЯТИЯ И ВСТРОЕННЫЕ ТИПЫ .............................................. 29-ГЛАВА 1 - Первое знакомство с Python ........................................................................................ 31 У станов ка интерпретатора Python под Windows ......................................................... 31Hello, 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 77f-строки .......................................................................................................................... 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 ........................................................ 642IPython - более удобный REPL .................................................................................. 642От IPython к JupyterLab ................................................................................................ 648Заключение .................................................................................................................... 659Заключение ко всей книге ......................................................................................... 661Литература ................................................................................................................... 662Предметный указатель .............................................................................................. 663
Описание
Ниже — практический обзор по теме «python».
Основные темы касаются встроенных типов языка, функций и аннотации типов, особенностей динамической типизации, форматирования и обработки текста, в том числе с использованием регулярных выражений, работа с файлами. Книга предназначена для изучения языка Python с ориентацией на использование его в инженерных и научных вычислениях, начиная с установки интерпретатора и изучения основ языка и до применения специализированных библиотек. Подробно рассматриваются основные идеи объектно-ориентированного программирования и его особенности в Python. Рассматриваются такие инструменты, как IPython и JupyterLab, применяемые в научных и инженерных областях. Также затрагиваются темы обработки исключений, тестирования приложений, описываются некоторые модули из стандартной библиотеки, а также множество сторонних библиотек, в частности, NumPy для математических вычислений, Pandas для обработки табличных данных, Matplotlib для построения различных видов графиков, библиотеки для работы с различными форматами файлов.
Для студентов инженерных специальностей, а также для начинающих изучать язык
Благодаря легкости его изучения и удобству использования Python нашел применение в различных областях: начиная с создания веб-сервисов, приложений для ПК, маленьких скриптов, выполняющих однотипные задачи, до работы с нейронными сетями, статистики в машинном обучении, обработки данных. В настоящее время Python является одним из наиболее популярных языков программирования. Также Python широко применяется для решения научных и инженерных задач благодаря многочисленным сторонним библиотекам. Python закрепился в научной среде и в образовании и является де-факто стандартным инструментом для решения математических задач, обработки табличных данных, построения графиков многих видов. Python — лаконичный язык, он позволяет оперативно писать код, реализующий требуемый алгоритм, отлаживать его и гарантировать работоспособность..
Книга начинается с самых основ языка Python, его синтаксиса и базовых типов, затем описываются основные идеи объектно-ориентированного программирования и их реализация на Python. Установка интерпретатора PythonОсновы языка Python: описание синтаксиса и встроенных типовФункции и аннотации типовОбъектно-ориентированное программированиеОбработка исключенийРабота с текстом и регулярные выраженияУстановка сторонних библиотек и использование виртуальных окруженийРабота с файлами и файловой системойТестирование приложенийБиблиотека NumPy для математических расчетовФорматы хранения данных, используемые в научной средеПостроение двумерных и трехмерных графиков с помощью библиотеки MatplotlibРабота с табличными данными с помощью библиотеки PandasСреды выполнения скриптов IPython и JupyterLabЭта книга предназначена для обучения языку Python именно в таком направлении. Наконец, рассказывается о стандартной библиотеке Python и множестве сторонних библиотек и инструментов, облегчающих работу в инженерной и научных областях.
Файл доступен для загрузки ниже.
Поделиться
Частые вопросы
Можно ли скачать «Python для инженерных задач. Самоучитель» бесплатно?
Да, «Python для инженерных задач. Самоучитель» доступна для бесплатного скачивания на нашем сайте в формате PDF. Ссылка на файл находится на этой странице.
В каком формате и какого размера файл?
Книга предоставляется в формате PDF, размер файла 37,5 МБ.
Кто автор и когда вышла книга?
автор — Ильин Евгений Вячеславович , Ярошенко Алексей Андреевич, издательство БХВ-Петербург, год выпуска 2023, 679 страниц.
О чём книга «Python для инженерных задач. Самоучитель»?
Книга предназначена для изучения языка Python с ориентацией на использование его в инженерных и научных вычислениях, начиная с установки интерпретатора и изучения основ языка и до применения специализированных библиотек.