- •1. Базові поняття
- •1.1. Алгоритми і програми
- •1.2. Мови програмування і рівні абстракції
- •Було відмічено, що всі обчислення зводяться до наступних елементарних дій:
- •Але, мови високого рівня мають багато переваг:
- •1.3. Формальні і природні мови
- •1. Однозначність
- •2. Надмірність
- •1.4. Інтерпретатори і компілятори
- •1.5. Перша програма
- •Існує два способи використання інтерпретатора:
- •1.6. Що таке відлагодження?
- •1.6.1. Синтаксичні помилки (syntax errors)
- •1.6.2. Помилки виконання (runtime errors)
- •1.6.3. Семантичні помилки (semantic errors)
- •1.6.4. Процес відлагодження
- •1.7 Довідкова система
- •1.7. Коментарі в програмах
- •1.8. Створення скриптів
- •1.9 Поняття модуля
- •Імпортування модулів
- •Стандартна бібліотека Python
- •Модулів, що тісно пов'язані з інтерпретатором
- •Модулі для інтерфейсу з операційною системою
- •Окрему групу складають модулі, специфічні для юнікса:
- •Є модулі для доступу до зовнішніх бібліотек.
- •Мережні протоколи
- •Бібліотека Python містить засоби створення серверів.
- •Інші модулі
- •Методичні вказівки
Бібліотека Python містить засоби створення серверів.
Модуль SocketServer містить базові класи, на основі яких пишуться як потокові (TCP), так і датаграммные (UDP) сервери, як многопроцессные (використовуючі os.fork()), так і багатопотокові (multithreading).
Модуль BaseHTTPServer містить базові класи для створення HTTP-серверів.
Модуль SimpleHTTPServer розвиває ці базові класи і дозволяє програмістові писати реакції на запити GET, HEAD і POST.
Модуль CGIHTTPServer дозволяє розширювати функціональність сервера зовнішніми програмами.
Модулі asyncore і asynchat дозволяють писати асинхронні (на основі select/poll) клієнти і сервери. Найбільш відомі асинхронні сервери - однопоточный многопротокольный сервер Medusa і зроблений на її основі багатопотоковий ZServer, що є ядром сервера web-застосувань Zope. Найбільш відомий клієнт: Asynchronous HTTP Client.
Крім мережевих протоколів, Python дозволяє маніпулювати і з даними, бігаючими поверх цих протоколів. Модуль rfc822 дозволяє читати дані у форматі відповідного RFC і отримувати інформацію про заголовки повідомлення.
Модуль mimetools розширює rfc822 у бік відповідного стандарту і дозволяє розбирати складні складені повідомлення.
Модуль MimeWriter дозволяє їх створювати.
Модулі binhex, uu, binascii, base64, quopri дозволяють кодувати і декодувати тексти.
Модулі mailcap, mimetypes, netrc, robotparse витягують інформацію з відповідних файлів.
Модулі mailbox і mhlib дозволяють читати поштові скриньки у форматі UNIX mbox і MH.
Модулі sgmllib, htmllib і xmllib дозволяють створювати парсери для файлів відповідних форматів. Модуль sgmllib підтримує підмножина SGML, достатня лише для обробки HTML. Модуль htmllib розширює попередній модуль у бік написання текстових форматеров для HTML. А ось xmllib дійсно містить повноцінні парсеры XML. Парсеров цих буває 2 типи - що працюють зі всім деревом відразу (DOM, Document Object Model) і розбір, керований подіями (SAX). Бібліотека ця до того ж містить хуки, що дозволяють адміністраторові встановити поверх неї іншу версію, не стираючи старої; існує декілька альтернативних реалізацій, що використовують ці хуки: PyXML і 4Suite. Всі ці бібліотеки використовують низькорівневий парсер Expatякий не входить в дистрибутив Python; його треба встановлювати окремо.
Інші модулі
Крім перерахованих модулів стандартної бібліотеки, що входять в дистрибутив інтерпретатора, для Python існує маса додаткових модулів, які можна узяти в Інтернеті. Існує навіть каталог таких модулів, що називається Парнас. Є навіть комерційні фірми, що випускають модулі для Python, - і багато хто з цих модулів доступний вільно! На перше місце я поставлю фірму Zope Corporationщо вільно віддає сервер web-застосувань Zope. Окрім них відомі PythonWare / Secret Labs з своїми модулями PIL (Python Imaging Library), xmlrpclib, soaplib, нова версія Tkinter, Pythonware Sound Toolkit; ReportLab з своєю бібліотекою генерації PDF; Numerical Python - розширення Python для ефективної обробки матриць; Scientific Python - для наукових розрахунків (використовує NumPy); eGenix з своїми модулями mxDateTime (маніпуляції з датами і часом), mxtextTools (ефективна обробка текстів), mxODBC (комерційний модуль для доступу до реляційних БД, в т.ч. і з юнікса).
Існують модулі, що дозволяють вбудовувати інтерпретатор Python в Apache. Найпростіший з них PyApache. Mod_Python складніший, він інтенсивніше кешує байт-код, має об'єктно-орієнтований API, дозволяє писати хендлери для Апача. Mod_Snake дозволяє писати хендлери для Апача 2.0.
Велика кількість модулів для доступу до баз даних, і не тільки реляційним, наприклад PyBSDDB для доступу до BerkeleyDB3. Модулі для доступу до реляційних БД задовольняють специфікації Python DB API 2.0: PyGreSQL для доступу до PostgreSQL (модуль входить в дистрибутив POSTGRESQL); MySQLdb для доступу до MYSQL.
Крім Tk, програми з графічним інтерфейсом на Python можна писати з використанням багатьох інших бібліотек: WxPython для WxWidgets; PyGTK для GTK; а бібліотека Python XLib є повністю переписаною бібліотекою xlib! PLWM - це Window Mnager написаний на Python.
Романюк Андрій Богданович, Юрчак Ірина Юріївна
