ebook img

Мова програмування Python для інженерів і науковців PDF

272 Pages·2019·3.006 MB·Ukrainian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Мова програмування Python для інженерів і науковців

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Івано-Франківський національний технічний університет нафти і газу Кафедра комп’ютеризованого машинобудування В. Б. Копей МОВА ПРОГРАМУВАННЯ PYTHON ДЛЯ ІНЖЕНЕРІВ І НАУКОВЦІВ НАВЧАЛЬНИЙ ПОСІБНИК Івано-Франківськ 2019 УДК 004.43 К 65 Рецензенти: Панчук В. Г., доктор технічних наук, професор, завідувач кафедри комп’ютеризованого машинобудування Івано- Франківського національного технічного університету нафти і газу Никифорчин О. Р., доктор фіз.-мат. наук, професор, завідувач кафедри алгебри та геометрії Прикарпатського національного університету імені Василя Стефаника Кіт Г. В., кандидат технічних наук, доцент, завідувач кафедри інформаційних технологій та програмування Івано– Франківської філії Відкритого міжнародного університету розвитку людини "Україна" Затверджено Вченою радою університету (протокол №05/599 від 26 червня 2019 р.) К65 Копей В. Б. Мова програмування Python для інженерів і науковців : навчальний посібник / В. Б. Копей – Івано- Франківськ : ІФНТУНГ, 2019. – 272 с. ISBN 978-966-694-348-7 Навчальний посібник містить приклади програм мовою Python з коментарями. Розглянуто основи програмування, стандартну бібліотеку та сторонні пакети для технічних та наукових обчислень. Призначено для вивчення дисциплін «Об’єктно-орієнтоване програмування» та «Інформаційне забезпечення САПР», а також для виконання курсових і магістерських робіт під час підготовки фахівців першого (бакалаврського) та другого (магістерського) рівнів освіти за спеціальністю 131 – Прикладна механіка. УДК 004.43 ISBN 978-966-694-348-7 © Копей В. Б., 2019 © ІФНТУНГ, 2019 2 ЗМІСТ ВСТУП .................................................................................................... 9 РОЗДІЛ 1. МОВА PYTHON ТА ЇЇ СТАНДАРТНА БІБЛІОТЕКА .. 12 Найпростіша програма ......................................................................... 12 Програма для додавання двох чисел .................................................. 12 Числові типи даних .............................................................................. 12 Оператори числових типів ................................................................... 13 Оператор умови if ................................................................................. 15 Оператор циклу for ............................................................................... 16 Оператор циклу while ........................................................................... 16 Оператори break і continue ................................................................... 16 Послідовність кортеж. Оператори для усіх послідовностей ............ 17 Послідовність рядок ............................................................................. 18 Юнікод-рядки ....................................................................................... 20 Юнікод-літерали в Python 2 ................................................................. 20 Послідовність список ........................................................................... 20 Словник. Оператори для словників .................................................... 22 Множина ............................................................................................... 23 Функції .................................................................................................. 24 Функції з довільною кількістю аргументів ........................................ 25 lambda-функції ...................................................................................... 25 Рекурсивні функції ............................................................................... 25 Замикання .............................................................................................. 26 Обробка виняткових ситуацій ............................................................. 26 Файли ..................................................................................................... 27 Модулі ................................................................................................... 29 Файл c:\1\main.py: ............................................................................ 29 Файл c:\1\module1.py: ...................................................................... 30 Файл c:\1\package1\__init__.py: ....................................................... 30 Файл c:\1\package1\module1.py: ...................................................... 30 Файл c:\1\package1\module2.py: ...................................................... 31 Математичні функції ............................................................................ 31 Вбудовані функції для роботи з послідовностями ............................ 32 Генератори ............................................................................................ 33 Співпрограми ........................................................................................ 34 3 Ітератори ............................................................................................... 35 Об’єкти .................................................................................................. 36 Класи ...................................................................................................... 36 Клас із конструктором ......................................................................... 37 Успадкування і поліморфізм ............................................................... 38 Атрибути класу і атрибути екземпляра .............................................. 39 Статичні методи та методи класу ....................................................... 40 Властивості ........................................................................................... 41 Перевантаження операторів ................................................................ 42 Контейнери ........................................................................................... 43 Менеджери контексту і інструкція with ............................................. 44 Метакласи ............................................................................................. 45 Декоратори ............................................................................................ 47 Декоратори з аргументом .................................................................... 47 Декоратори класу ................................................................................. 48 Інтроспекція .......................................................................................... 49 inspect – перегляд об’єктів часу виконання ....................................... 51 copy – копії об’єктів ............................................................................. 53 itertools – функції для ефективних ітерацій ....................................... 54 re – операції з використанням регулярних виразів ........................... 56 decimal – дійсні числа довільної точності .......................................... 63 time – визначення і конвертування значень часу .............................. 64 datetime – робота з датою і часом ....................................................... 65 calendar – робота з календарем ............................................................ 66 pdb – відлагоджувач Python ................................................................. 67 timeit – тривалість виконання невеликих частин коду ..................... 68 logging – ведення журналу................................................................... 68 pickle – серіалізація об’єктів Python ................................................... 69 shelve – збереження об’єктів Python ................................................... 70 anydbm – універсальний доступ до DBM баз даних ......................... 71 sqlite3 – DB-API 2.0 інтерфейс для баз даних SQLite ....................... 71 csv – читання і запис файлів CSV ....................................................... 72 tarfile – читання і запис файлів архіву tar ........................................... 73 zipfile – робота з ZIP-архівами ............................................................ 74 zlib – сумісне з gzip стиснення даних ................................................. 75 sys – системні параметри і функції ..................................................... 75 4 os – файлова система ............................................................................ 77 shutil – високорівневі операції з файлами .......................................... 78 os – створення і керування процесами ............................................... 78 subprocess – керування підпроцесами ................................................ 79 subprocess – міжпроцесова взаємодія ................................................. 81 main.py – модуль клієнта ................................................................. 81 server.py – модуль сервера............................................................... 81 thread – створення багатьох потоків керування ................................. 82 threading – високорівневий інтерфейс потоків .................................. 83 multiprocessing – підтримка багатох процесів ................................... 85 multiprocessing – запуск паралельних задач ....................................... 86 multiprocessing – міжпроцесова взаємодія ......................................... 86 socket – низькорівневий мережевий інтерфейс ................................. 87 server.py – модуль сервера............................................................... 87 client.py – модуль клієнта ................................................................ 89 socketFileIO.py – читання і запис об’єктів Python через сокет .... 89 SocketServer – каркас для мережевих серверів .................................. 90 CGI HTTP сервер .................................................................................. 91 CGI-програма simple.py – генерація форми запиту ........................... 93 CGI-програма get_post.py - обробка запитів GET і POST ................ 94 WSGI сервер.......................................................................................... 95 urllib2 – запити до HTTP серверів ....................................................... 98 xml.dom.minidom – мінімальна реалізація DOM ............................. 100 xml.etree.ElementTree – ElementTree XML API................................ 102 HTMLParser – простий парсер HTML і XHTML ............................. 105 Tkinter – проста програма з графічним інтерфейсом ...................... 107 Tkinter – основні класи ....................................................................... 108 ttk.Treeview – дерево елементів......................................................... 112 Вбудовування інтерпретатора Python у C++ програму .................. 116 ctypes – виклик зовнішніх C-функцій ............................................... 117 Розширення Python мовою C++ ........................................................ 119 РОЗДІЛ 2. СТОРОННІ БІБЛІОТЕКИ PYTHON ............................. 121 IPython – інтерактивна командна оболонка ..................................... 121 Jupyter Notebook – інтерактивні документи ..................................... 124 Matplotlib – процедурний API pyplot ................................................ 126 Matplotlib – об’єктно-орієнтований API ........................................... 127 5 Matplotlib – додаткові параметри графіків ....................................... 128 Matplotlib – інші типи діаграм ........................................................... 130 Matplotlib – інтерактивна побудова графіків ................................... 134 Bokeh – інтерактивна візуалізація..................................................... 135 Bokeh – cерверна програма ................................................................ 136 numpy – робота з масивами ............................................................... 137 numpy.linalg – лінійна алгебра .......................................................... 142 numpy.random – генератори випадкових чисел ............................... 143 numpy – поліноми ............................................................................... 144 scipy.vectorize – векторизація функцій ............................................. 144 scipy – похідна і первісна функції ..................................................... 145 scipy.integrate – інтегрування ............................................................ 146 scipy.integrate.odeint – звичайні диференціальні рівняння ............. 147 scipy.integrate.odeint – модель польоту снаряду .............................. 148 scipy.integrate.odeint – модель коливань, що згасають .................... 149 scipy.interpolate – інтерполяція .......................................................... 150 scipy.optimize.fsolve – розв’язування рівнянь .................................. 152 scipy.optimize.root – розв’язування систем рівнянь ......................... 153 scipy.optimize.curve_fit – регресійний аналіз ................................... 153 scipy.optimize.curve_fit – множинна регресія ................................... 156 scipy.optimize.fminbound – оптимізація функції однієї змінної з границями ............................................................................................ 158 scipy.optimize.fminbound – локальна оптимізація невідомої функції .............................................................................................................. 160 scipy.optimize.fmin_l_bfgs_b – оптимізація з границями методом L- BFGS-B ................................................................................................ 161 scipy.optimize.differential_evolution – диференціальна еволюція ... 162 scipy.optimize.basinhopping – комбінований метод глобальної оптимізації ........................................................................................... 164 scipy.stats – випадкові величини ....................................................... 167 scipy.stats – підгонка кривих і перевірка статистичних гіпотез ..... 170 scipy.stats.kde – ядрова оцінка густини розподілу ........................... 174 scipy.fftpack дискретне перетворення Фур’є .................................... 175 scipy.fftpack – обернене дискретне перетворення Фур’є ................ 177 scipy.cluster – кластеризація .............................................................. 179 pandas – аналіз даних ......................................................................... 181 6 scikit-learn – машинне навчання ........................................................ 186 NetworkX – графи ............................................................................... 188 NetworkX – орієнтовані графи, алгоритми на графах ..................... 191 pyDatalog – логічне програмування в Python ................................... 195 Зв’язок з інтерпретатором Prolog ...................................................... 196 kanren – логічне програмування в Python ........................................ 197 python-constraint – задачі виконання обмежень ............................... 199 PIL (Pillow) – робота з растровою графікою .................................... 200 PyOpenGL – прив’язка до OpenGL ................................................... 201 pyglet – кросплатформна віконна і мультимедійна бібліотека ...... 205 pythonOCC – прив’язка до геометричного ядра Open CASCADE Technology ........................................................................................... 209 FreeCAD – вільна САПР з Python API .............................................. 211 Abaqus/CAE – моделювання методом скінченних елементів ........ 215 SymPy – символьна математика ........................................................ 217 Взаємодія з Maple ............................................................................... 221 OMPython – інтерфейс OpenModelica Python .................................. 222 xlwt – створення електронних таблиць Excel .................................. 224 pywin32 – інтерфейс до win32 GUI API ........................................... 225 win32com.client – об’єкти Excel ........................................................ 226 win32com.client – об’єкти Excel з обробкою подій ......................... 227 win32com.client – об'єкти SOLIDWORKS ........................................ 230 pyserial – доступ до послідовного порту .......................................... 230 pyFirmata – комунікація комп’ютера та Arduino ............................. 231 concurrent.futures – запуск паралельних задач ................................. 233 Dask – розподілені обчислення на чистій Python ............................ 234 Dask.Distributed – розподілені обчислення ...................................... 236 PyQt4 – фреймворк Qt в Python ......................................................... 237 PyQt4 – елементи керування QtGui .................................................. 239 PyQt4 – створення елемента керування ............................................ 244 PyParsing – зручний синтаксичний аналіз ........................................ 247 pymorphy2 – морфологічний аналізатор .......................................... 250 pygments – підсвітка синтаксису ....................................................... 251 pygments – підсвітка синтаксису в Tkinter ....................................... 253 lxml – простий і швидкий парсинг XML і HTML ........................... 255 lxml – XSLT трансформації ............................................................... 256 7 Bottle – легкий WSGI веб-фреймворк ............................................... 256 РОЗДІЛ 3. ЗАДАЧІ ............................................................................. 260 ПЕРЕЛІК ВИКОРИСТАНИХ ДЖЕРЕЛ .......................................... 268 8 ВСТУП Python – це популярна високорівнева мова програмування загального призначення з акцентуванням на продуктивності розроблення. Python працює майже на усіх відомих платформах, є відкритим і вільним програмним забезпеченням, виконується шляхом інтерпретації байт-коду, підтримує кілька парадигм програмування (у тому числі об'єктно-орієнтоване), код програм компактний і легко читається (рис. 1). Мові характерні динамічна типізація, повна інтроспекція, зручні структури даних (кортежі, списки, словники, множини), велика стандартна бібліотека та велика кількість сторонніх бібліотек різноманітного призначення. Інтерпретатор Python має інтерактивний режим роботи, при якому введені з клавіатури оператори відразу ж виконуються, а результат виводиться на екран. Наприклад: >>> a=1 >>> b=2 >>> a+b 3 >>> Завдяки цим перевагам Python широко застосовується прикладними програмістами, зокрема інженерами і науковцями. Основна мета цього посібника – швидке ознайомлення з основними можливостями Python для створення прикладного програмного забезпечення в галузі науки і техніки. Книга також може бути використана як довідник із Python і її пакетів. Посібник призначено для тих, хто уже володіє основами програмування якою-небудь алгоритмічною мовою. Паралельно з посібником автор рекомендує використовувати літературу [1-58] для глибшого освоєння матеріалу. Початківцям у першу чергу слід ознайомитись із книгами [16, 19, 21, 36, 56-58] для вивчення основ Python та її стандартної бібліотеки. 9 Проста Велика Динамічна бібліотека типізація Багато- Повна платформна інтроспекція Python Загального Вільна призначення Високо- Популярна рівнева Рисунок 1 – Переваги мови Python Автор намагався продемонструвати максимум можливостей Python на мінімальному за обсягом коді, тому більшість прикладів є дещо штучними. Приклади програм містять коментарі, що надруковані курcивом після символу #. Ці коментарі не виконуються інтерпретатором. Код програм і результати їхнього виведення надруковані моноширинним шрифтом так: код програми # коментар текст виведення програми в консолі Вихідний код усіх прикладів доступний на GitHub (https://github.com/vkopey/Python-for-engineers-and-scientists). Цей код розмічений спеціальним чином і містить Markdown-текст у рядкових Python-літералах ("""…"""), що дозволяє генерувати з коду документи у форматах Jupyter Notebook, HTML та MS Word 2007. Детальніше про це – https://github.com/vkopey/py2nb. 10

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.