Огляд функціональних можливостей мови Python

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2011
Тип роботи:
Лабораторна робота
Предмет:
Інші

Частина тексту файла (без зображень, графіків і формул):

Мiнiстерство освiти і науки, молоді та спорту України Національний університет “Львівська політехніка” Кафедра ЕОМ  Лабораторна робота №3 з диcципліни: «Тестування програмного забезпечення» на тему: «Огляд функціональних можливостей мови Python» Мета: розглянути особливості мови Python і бібліотек, які розширюють її функціональні можливості. Завдання: Розглянути функціональні можливості мови Python Визначити переваги мови Python з точки зору автоматизації тестування Розглянути бібліотеки мови Python. Теоретичні відомості. Python (рекомендоване прочитання — «Па́йтон», запозичено назву[1] з британського шоу Монті Пайтон) — інтерпретована об'єктно-орієнтована мова програмування високого рівня з динамічною семантикою.[2] Розроблена в 1990 році Гвідо ван Россумом. Структури даних високого рівня разом із динамічною семантикою та динамічним зв'язуванням роблять її привабливою для швидкої розробки програм, а також як засіб поєднання існуючих компонент. Пайтон підтримує модулі та пакети модулів, що сприяє модульності та повторному використанню коду. Інтерпретатор Пайтон та стандартні бібліотеки доступні як у скомпільованій так і у вихідній формі на всіх основних платформах. В мові програмування Пайтон підтримується декілька парадигм програмування, зокрема: об'єктно-орієнтована, процедурна, функціональна та аспектно-орієнтована. Філософія Серед основних її переваг можна назвати такі: чистий синтаксис (для виділення блоків слід використовувати відступи); переносимість програм (що властиве більшості інтерпретованих мов); стандартний дистрибутив має велику кількість корисних модулів (включно з модулем для розробки графічного інтерфейсу); можливість використання Пайтона в діалоговому режимі (дуже корисне для експериментування та розв'язання простих задач); стандартний дистрибутив має просте, але разом із тим досить потужне середовище розробки, яке зветься IDLE і яке написане на мові Пайтон; зручний для розв'язання математичних проблем (має засоби роботи з комплексними числами, може оперувати з цілими числами довільної величини, у діалоговому режимі може використовуватися як потужний калькулятор). Пайтон має ефективні структури даних високого рівня та простий, але ефективний підхід до об'єктно-орієнтованого програмування. Елегантний синтаксис Пайтона, динамічна обробка типів, а також те, що це інтерпретована мова, роблять її ідеальною для написання скриптів та швидкої розробки прикладних програм у багатьох галузях на більшості платформ. Інтерпретатор мови Пайтон і багата стандартна бібліотека (як вихідні тексти, так і бінарні дистрибутиви для всіх основних операційних систем) можуть бути отримані з сайту Пайтона www.python.org, і можуть вільно розповсюджуватися. Цей самий сайт має дистрибутиви та посилання на численні модулі, програми, утиліти та додаткову документацію. Інтерпретатор мови Пайтон може бути розширений функціями та типами даних, розробленими на C чи C++ (або на іншій мові, яку можна викликати із C). Пайтон також зручна як мова розширення для прикладних програм, що потребують подальшого налагодження. Типи й структури даних Пайтон підтримує динамічну типізацію, тобто, тип змінної визначається лише під час виконання. З базових типів слід зазначити підтримку цілих чисел довільної довжини і комплексних чисел. Пайтон має багату бібліотеку для роботи з рядками, зокрема, кодованими в юнікоді. З колекцій Пайтон підтримує кортежі (tuples), списки (масиви), словники (асоціативні масиви) і від версії 2.4, множини. Система класів підтримує множинне успадкування і метапрограмування. Будь-який тип, включаючи базові, входить до системи класів, й за необхідності можливе успадкування навіть від базових типів. Функціональне програмування Python пропонує засоби програмування в функціональному стилі. Найпростішими є спискові висловлювання (list comprehension). Наприклад, щоб отримати список квадратів натуральних чисел, менших 10, можна вжити вислів l = [x**2 for x in range(10)] Підтримуються анонімні функції: add2 = lambda x: x+2 після чого add2(5) == 7. Такі конструкції корисні, наприклад, як аргументи у функціональних висловлюваннях: filter(lambda x: x < 5, somelist) вибере зі списку somelist лише значення, менші 5 (тут lambda конструює справді анонімну функцію). Такий самий результат можна одержати за допомогою спискового висловлювання [x for x in somelist if x < 5]. Анонимні функції, як і інші функції, можна створювати всередині інших функцій, реалізуючи повноцінні замикання. Мова має чіткий і послідовний синтаксис, продуману модульність та масштабованість, завдяки чому вихідний код, написаних на Python програм, легко читається. Можливості Інтерактивний режим Подібно Ліспу та Прологу в режимі відлагодження, інтерпретатор Python має інтерактивний режим роботи, при якому введені з клавіатури оператори відразу ж виконуються, а результат виводиться на екран. Цей режим цікавий не тільки новачкам, але й досвідченим програмістам, які можуть протестувати в інтерактивному режимі будь-яку ділянку коду, перш ніж використовувати його в основній програмі, або просто використовувати як калькулятор з великим набором функцій. Так виглядає спілкування з Python в інтерактивному режимі: >>> 2 ** 100 # піднесення 2 до 100-го степеня 1267650600228229401496703205376L >>> from math import * # імпорт математичних функцій >>> sin (pi * 0.5) # обчислення синуса від половини пі 1.0 >>> help (sorted) # допомогу по функції sorted Help on built-in function sorted in module __builtin__: sorted (…) sorted (iterable, cmp=none, key=none, reverse=false) -> new sorted list В інтерактивному режимі доступний дебагер pdb та система довідки(викликається за help()). Система допомоги працює для модулів, класів і функцій, тільки якщо ті були забезпечені рядками документації. Крім вбудованої, існує й покращена інтерактивна оболонка IPython. [13] Об'єктно-орієнтоване програмування Дизайн мови Python побудований навколо об'єктно-орієнтованої моделі програмування. Реалізація ООП в Python є елегантною, потужною та добре продуманою, але разом з тим, достатньо специфічною в порівнянні з іншими об'єктно-орієнтованими мовами. Можливості та особливості: Класи є одночасно об'єктами з усіма нижче наведеними можливостями. Успадкування, в тому числі множинне. Поліморфізм (всі функції віртуальні). Інкапсуляція (два рівні — загальнодоступні та приховані методи і поля). Особливість — приховані члени доступні для використання та помічені як приховані лише особливими іменами. Спеціальні методи, керуючі життєвим циклом об'єкта: конструктори, деструктори, розподільники пам'яті. Перевантаження операторів (усіх, крім is, '.', '=' і символьних логічних). Властивості (імітація поля за допомогою функцій). Управління доступу до полів (емуляція полів і методів, частковий доступ, тощо). Методи для управління найбільш поширеними операціями (істинносне значення, len(), глибоке копіювання, серіалізація, ітерація по об'єкту, …) Метапрограмування (управління створенням класів, тригери на створення класів, та ін) Повна інтроспекція. Класові та статичні методи, класові поля. Класи, вкладені у функції та інші класи. Функціональне програмування Python підтримує парадигму функціонального програмування, зокрема: Функція є об'єктом. Функції вищих порядків. Рекурсія. Розвинена обробка списків (спискові вирази, операції над послідовностями, ітератори). Аналог замикань. Часткове застосування функції. Можливість реалізації інших засобів на самій мові (наприклад, каррінг). Модулі та пакети Програмне забезпечення (застосунок або бібліотека) на Python оформлюється у вигляді модулів, які у свою чергу можуть бути зібрані в пакунки. Модулі можуть розташовуватися як у каталогах, так і в ZIP-архівах. Модулі можуть бути двох типів за своїм походженням: модулі, написані на «чистому» Python, і модулі розширення (extension modules), написані на інших мовах програмування. Наприклад, в стандартній бібліотеці є «чистий» модуль pickle і його аналог на Сі: cPickle. Модуль оформляється у вигляді окремого файлу, а пакет — у вигляді окремого каталогу. Підключення модулю до програми здійснюється оператором import. Після імпорту модуль представлений окремим об'єктом, що дає доступ до простору імен модуля. У ході виконання програми модуль можна перезавантажити функцією reload(). Стандартна бібліотека. Багата стандартна бібліотека є однією з привабливих сторін Python. Тут є засоби для роботи з багатьма мережевими протоколами та форматами Інтернету, наприклад, модулі для написання HTTP-серверів та клієнтів, для розбору та створення поштових повідомлень, для роботи з XML тощо Набір модулів для роботи з операційної системою дозволяє писати крос-платформні застосунки. Існують модулі для роботи з регулярними виразами, текстовими кодуваннями, мультимедійними форматами, криптографічними протоколами, архівами, серіалізацією даних, підтримки юніт-тестування та ін. Модулі розширення та програмні інтерфейси Крім стандартної бібліотеки існує безліч бібліотек, що надають інтерфейс до всіх системних викликів на різних платформах; зокрема, на платформі Win32 підтримуються всі виклики Win32 API, а також COM в обсязі не меншому, ніж у Visual Basic або Delphi. Кількість прикладних бібліотек для Python в самих різних областях без перебільшення величезна (веб, бази даних, обробка зображень, обробка тексту, чисельні методи, програми операційної системи і т. д.). Для Python прийнята специфікація програмного інтерфейсу до баз даних DB-API 2 та розроблено відповідні цієї специфікації пакети для доступу до різних СУБД: PostgreSQL, Oracle, Sybase, Firebird (Interbase), Informix, Microsoft SQL Server, MySQL та sqlite. На платформі Microsoft Windows доступ до БД можливий через ADO (ADOdb). Комерційний пакет mxODBC для доступу до СУБД через ODBC для платформ Windows і UNIX розроблений eGenix[15]. Для Python написано багато ORM: (SQLObject, SQLAlchemy, Dejavu, Django), виконані програмні каркаси для розробки веб-застосунків (Django, Pylons). Бібліотека NumPy для роботи з багатовимірними масивами дозволяє досягти продуктивності наукових розрахунків, порівнянної зі спеціалізованими пакетами. SciPy використовує NumPy і надає доступ до великого спектру математичних алгоритмів (матрична алгебра — BLAS, level 1-3 і LAPACK; БПФ). На стадії розробки[16] знаходиться WSGI — інтерфейс шлюзу з веб-сервером (Python Web Server Gateway Interface). Python надає простий і зручний програмний інтерфейс C API для написання власних модулів на мовах Сі та C++. Такий інструмент як SWIG дозволяє майже автоматично отримувати прив'язки для використання C/C++ бібліотек в коді на Python. Можливості цього та інших інструментів варіюються від автоматичної генерації (C/C++/Fortran)-Python інтерфейсів за спеціальними файлів (SWIG, pyste[17], SIP[18], pyfort[19]), до надання більш зручних API (boost::python[20], CXX[21] та ін.) Інструмент стандартної бібліотеки ctypes дозволяє програмам Python безпосередньо звертатися до динамічних бібліотек/DLL, написаним на C. Існують модулі, що дозволяють вбудовувати код на С/C++ прямо у вихідні файли Python, створюючи розширення «на льоту» (pyinline[22], weave[23]). Для підключення математичних функцій, особливо з застосуванням NumPy, наразі офіційно рекомендованим є Cython[24] Інший підхід полягає у вбудовуванні інтерпретатора Python у застосунки. Python легко вбудовується в програми на Java, C/C++, Ocaml. Взаємодія Python-застосунків з іншими системами можлива також за допомогою CORBA, XML-RPC, SOAP, COM. За допомогою Pyrex[25] можлива компіляція Python-подібного мови (додана можливість типізації) у еквівалентний Сі-код і зв'язування із зовнішніми модулями. Експериментальний проект shed skin[26][27] передбачає створення компілятора для трансформації неявно типізованих Python програм у оптимізований С++ код. Починаючи з версії 0.22 shed skin дозволяє компілювати окремі функції в модулі розширень. Повна компіляція (станом на 1 липня 2007) далека від завершення. Python та переважна більшість бібліотек до нього безкоштовні й поставляються у вихідних кодах. Більше того, на відміну від багатьох відкритих систем, ліцензія ніяк не обмежує використання Python в комерційних розробках та не накладає ніяких зобов'язань крім вказівки авторських прав. Графічні бібліотеки З Python поставляється бібліотека tkinter на основі Tcl/Tk для створення крос-платформних програм з графічним інтерфейсом. Для науково-технічної мети найбільшого поширення набуло використання matplotlib — бібліотеки з інтерфейсом, аналогічним MATLAB Plot Tool. Існують розширення, що дозволяють використовувати всі основні GUI бібліотеки — wxPython[28], засноване на бібліотеці wxWidgets, PyGTK для GTK+, PyQt та PySide для Qt та інші. Деякі з них також надають широкі можливості для роботи з базами даних, графікою та мережами, використовуючи всі можливості бібліотеки, на якій базуються. Для створення ігор та програм, що вимагають нестандартного інтерфейсу, можна використовувати бібліотеку Pygame. Вона також надає великі засоби роботи з мультимедіа: з її допомогою можна керувати звуком і зображеннями, відтворювати відео. Надаване pygame апаратне прискорення графіки OpenGL має більш високорівневий інтерфейс в порівнянні з PyOpenGL[29], що копіює семантику С-бібліотеки для OpenGL. Є також PyOgr[30], що забезпечує прив'язку до Ogre — високорівневої об'єктно-орієнтованої бібліотеки 3D-графіки. Крім того, існує бібліотека pythonOCC[31] , що забезпечує прив'язку до середовища 3D-моделювання та симуляції OpenCascade.[32] Для роботи з растровою графікою використовується бібліотека Python Imaging Library. Висновок: в даній лабораторній роботі, я ознайомився з можливостями мови Python, визначив переваги у використанні цієї мови для написання автоматизованих тестів, а також розглянув біліотеки, які розширюють функціональні можливості мови Python.
Антиботан аватар за замовчуванням

17.03.2013 13:03-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!