![]() |
![]() |
![]() |
![]() |
![]() |
Приклади, що наведені на цій сторінці, готувалися як наочний матеріал до лабораторних робот з вступного курсу Python, але, так склалося, що такий курс мені не довелося читати. Тому поряд з прикладами я буду додавати невеличкі теоретичні відомості і, в першу чергу, такі відомості будуть стосуватися класу задач по ідентифікації технічних об'єктів, тобто, пошуку аналітичної форми табличних функцій Сьогодні мова програмування Python представлена в великій кількості підручників, тому я не бачу необхідності дублювати основи Python на цій сторінці, але окремі моменти архітектури або корисного програмного коду таки треба буде навести. Для початку дамо посилання на офіційну та довідкову документацію:
Зауважимо, всі приклади, що наведені на цій сторінці, веріфіковані в операційній системі Windows 10 та версіях Python 3.7 або 3.10 |
Рекомендована література
Як вже зазначалося, сьогоді в інтернеті можна знайти дуже багато сторінок, підручників та інше, що посвячені самостійному опануванню Python. Наведемо окремі з них:
|
1. За замовчуванням, вихідні коди Python вважаються створеними в кодуванні UTF-8.
В UTF-8 у рядкових літералах та коментарях можуть бути використано символи
більшості мов світу. Якщо вибраний редактор не підтримує файли, закодовані
UTF-8 і вимагає застосування будь-якого іншого кодування, припустимо
Windows-1251 (ANSI), ви можете першим або другим рядком вхідного файлу
написати:
2. Зазвичай в системі Windows інтерпритатор Python розміщений
в поддиректоріях C:\Users\...\, прописаний в системному PATH та викликається
за асоціацією (*.py). Наберіть в системній консолі (cmd.exe) команду PATH для
того щоб визначити який файл: py.exe (Python 3.10) або наприклад, python.exe
(Python 3.7), буде викликати Python в режимі консольної інтерпритації.
Після запуску інтерпритатора на консолі з'являється запрошення (>>>)
для вводу та виконання наступної інструкції Python ![]() Після вооду кожної строки натискаємо Enter. Якщо строка продовження відсутня, (тобто ми нічого не вводимо) то Enter ініціює виконання введеного коду.
3.
Якщо інтерпритатору в якості першого параметра передати файл програми (інша назва
script), то інтерпритатор почне автоматично виконання такої програми. Треба
також відзначити що консоль повинна знаходитись на поточній директорії програми,
а сама програма повинна включати в себе інструкції, що призупиняють автоматичне
завершення після виконання. В самому простому випадку останьою інструкцією
можна застосувати наступне:
4. В пункті (3) зазначена проблема призупинки програми по завершенню.
А яким чином тоді програмувати консольні програми що здатні виконувати декілько
функцій по вибору користувача? На це питання можна запропанувати наспупне
спощене рішення:
|
5.
Основним носієм графічного інтерфейсу користувача в Tkinter є вікна. Але більшисть
додатків застосовують лише одно вікно з типовим ім'ям root. Для створення такого
вікна достатньо виконати наступний код:
6.
Вже декілька раз підкреслювалося, що ми будимо уникати розробки засобів ООП (об'єктно
орієнтованого програмування), але використання об'єктів при прикладному програмуванні
в Python це звичайна та поширена техніка. В першу чергу це обумовлено тим, що в Python
всі екземпляри даних різних типів це класичні об'єкти. Таким чином, єкземпляри даних
мають не лише значення, але також забеспечені різноманітними методами, особливо це
стосується структурованих даних (str, tuple, set, dict, list). ![]() Детальніше про методи об'єктів буде розглянуто нижче у розділі 2 цієї сторінки.
7.
В учбових курсах нашої кафедри часто застосовується інтерпритатор системи MATLAB.
В цьому сенсі, цікаво порівняти синтаксис та інструментарій мов програмування
Python та MATLAB:
|
Знайомство с мовами програмування завжди необхідно починати з даних, з якими буде працювати той чи інший інструментарій мови. Це зручно продемострувати на прикладі абстрактної дії "Різати". Зрозуміло що різати можна хліб, деревену, метал, камінь та інше, але також зрозуміло, що в кожному випадку доведеться застосовувати зовсім різний інструмент та спосіб його використання. В системі Python данні це завжди динамічні екземпляри, що створюються відповідно до їх типу як об'єкти. На малюнку, що наведений нижче, червоним кольором наведені вбудовані в Python типи: Детальніше про типи даних наведено за посиланнями:
Python дозволяє визначити тип (класс) кожного створеного
об'єкту. Наприклад, якщо окремий об'єкт має ім'я obj то його тип
або клас визначаються кодом: Відносно об'єктів, що належать до подібних груп типів або подібних властивостей в типах, Python пропанує вбудовані функції. Нижче представлений перелык таких функцій сортирований за алфавітом: Детальніше про вбудовані функції наведено за посиланнями: |
Як вже зазначалося, данні в Python це завжди динамічні
екземпляри, що створюються відповідно до їх типу як об'єкти. Основною
особливістю об'єктів є надання кожному об'єкту набору інструментів
відповідно до його типу. Такі інструменти мають назву "методи" та
являють собою вбудовані, але вже в конкретний тип функції. Виклик
метода кодується його ім'ям, що відокремлюється крапкою від ім'я
об'єкту. Паприклад:
Об'єкти, що створені на базі типів boolean, str, а також
груп numeric, binary мають відносно просту структуру та досить
легко опановуються самостійно. Внятком можна важати хіба що
тип str, в якому представлена значна кількість методів для
обробки строк. Детальніше з операціями, функціями та методами
наведених типів можна ознайомитися за посиланням: Додатково наведемо документ по методам типу str, який влючає посилання, що демонструють работу таких методів: Значно частіше в Python застосовуються об'єкти що конструюються програмістом з допомогою типів list, tuple, dict та set. Особливотю об'єктів таких типів є струкура що включає до себе інші об'єкти. Розгянемо конструктори та методи таких конструйованих об'єктів:
Конструйовані структури даних Python
На завершення розділу наведемо документ в якому розглянуті
окремі особливості конструйованих структур даних Python: |
Наведений практикум розроблявся мною як основа для лабораторних робот і вже згодом був віредагованій як набор прикладів. Остання редакція практикума складається з наступних розділів: ЗМІСТ РОЗДІЛІВ ПРАКТИКУМА 01_Акценти ![]() Дві невеличкі програми, що допомогають організувати діалог в DOS-style консолі 02_Типи_даних ![]() Два підрозділа. В першому наведено документацію відносно методів типа string. В другому наведені програми огляду методів для типів list, tuple, dict, set, додаткова документація та додаткові приклади. 03_Прості_приклади ![]() П'ять підрозділів. Всі підрозділи наводять дуже прості приклади. Але треба зауважити, що рухатися далі має сенс лише тоді, якщо вам все зрозуміло в наведених прикладах. 04_Рівняння ![]() Програми, що наведені в даному підрозділі, реалізують алгоритм знаходження кореня транцендентного рівняння методом дихотомії.
Увага! В цьому підроздіді вперше в практикумі застосовуються Pithon-файли з розширенням .pyw |
05_Системи ![]() Програми, що наведені в даному підрозділі, реалізують алгоритм знаходження коренів системи лінійних рівнянь за методом Гауса. 06_Інтерполяція ![]() Програми, що наведені в даному підрозділі, реалізують алгоритм інтерполяції табличної функції степеневим рядом. Та найбільш цікавим в цих прикладах, є застосування програми роз'вязання системи лінійних рівнянь, що винесена окремим файлом в директорію Tools. 07_Апроксимація ![]() Програми, що наведені в даному підрозділі, реалізують алгоритм апроксимації табличної функції степеневим рядом. Така задача це основний інструмент ідентифікації об'єктив, тобто, знаходження аналітичного виду характеристик нових датчиків або перехідних функцій, що представлені таблицами експерементів. 08_Текстові файли ![]() Два підрозділа. В першому наведено приклади програм по читанню та запису строк в текстовий файл. В другому наведені програми найпростішого блокноту, що дозволяє читати або записувати текст в кодуванні ANSI або UTF8. Якщо застосовувати такі програми як окремі модулі, то ми маємо зручний інструмент для різноманітних репортерів. 09_Client_Server ![]() Чотири підрозділа. В підрозділах наведено приклади TCP/IP програм серверов (Python реалізація) та клієнтів (Python та Delphi_7 реалізації). Клієнт - сервверна пара з директорії 04_Aircraft показана на наступній копії екрану: ADD та ADD_DOCUMs Два підрозділа. Поступово в ці підрозділи будуть завантажуватися нові поповнення. На поточний час дуже рекомендую розібратися с двома документами з підрозділа ADD_DOCUMs: |
Сьогодні в інтернеті можна знайти безліч прикладів на довільний смак. В даному випадку, я навіть не намагався зробити якись огляд Python-прикладів з інтернету, але окремі приклади всеж наведу. Чому саме ці приклади? - Тому що опанування підрозділів FileManager та PyEdit_2_1 здатно надати багато корисної інформації, що забеспечить більш професійний рівень ваших розробок. |
В матеріалах сайту я зовсім не приділяв уваги до TURTLE-графіки. Це тому, що ця графіка більш орієнтована на художне, а не технічне використання. Але окремі алгоритми TURTLE-графіки (наприклад, малювання фракталів) могут оказатися корисними. Тому пограйтися з програмами з підрозділу Turtle, я лише зауважу, що окремі програми працюють на версіях Python 3.7 або нижче. Для найбільш підготовлених програмістів цікаво буде розібратися с нейромережею AlphaZero, яка моделює дуже ефективний алгоритм навчання. Але зразу попереджаю, що прогулянка не буде легкою :) На завершення, бажаю вам всіляких успіхів на шляху самовдосконалення, конструктивізму та удачі! |