
Лекция 1_ 01.09.15
.pdf
Веб-сценарии
•Интерпретатор Python поставляется вместе со стандартными интернетмодулями, которые позволяют программам выполнять разнообразные сетевые операции.
•Сценарии могут
•производить взаимодействиячерез сокеты,
•извлекать информацию из форм,
•передавать файлы по протоколу FTP,
•передавать, принимать, создавать и производить разбор писем электроннойпочты,
•загружать веб-страницы с указанных адресов URL,
•производить разбор разметки HTML и XML полученных вебстраниц,
•производить взаимодействияпо протоколам XML-RPC, SOAP и Telnet

Веб-сценарии
•Cуществует огромная коллекция сторонних инструментов для создания сетевых программ на языке Python, которые можно найти в Интернете:
•HTMLGen позволяет создавать HTML-страницы на основе описаний классов Python,
•mod_python предназначен для запуска сценариев на языке Python под
управлением веб-сервера Apache и поддерживает шаблоны механизма Python Server Pages.
• Jython обеспечивает бесшовную интеграцию Python/Java и поддерживает серверные апплеты, которые выполняются на стороне клиента.
Бесшовная интеграция – это возможность в рамках выполнения определенного процесса, происходящего в одной системе, незаметно для пользователя переходить к работе в другой системе.
Для Python существуют полноценные пакеты веб-разработки, такие как
Django, TurboGears, web2py, Pylons, Zope и WebWare, поддерживающие возможность быстрого создания полнофункциональных высококачественных веб-сайтов на языке Python.

Интеграция компонентов
•Возможность Python расширяться и встраиваться в системы на языке C и C++ делает его удобным и гибким языком для описания поведения других систем
икомпонентов. Например,
•интеграция с библиотекойна языке C позволяет Python проверять наличие и запускать библиотечные компоненты,
•встраивание Python в программные продукты позволяет производить настройку программных продуктов без необходимости пересобирать эти продукты или поставлять их с исходными текстами.
•Следующие возможности Python предоставляют альтернативные способы организации взаимодействии программными компонентами:
•поддержка COM в MS Windows,
•Jython – реализация на языке Java,
•IronPython – реализация на базе .NET,
•разнообразные реализации CORBA.
Например, в операционнойсистеме Windows сценарии на языке Python могут использовать процессы управления такими приложениями, как MS Word и Excel.

Приложения баз данных
•В языке Python имеются интерфейсы доступа ко всем основным реляционным базам данных:
• Sybase, Oracle, Informix, ODBC, MySQL, PostgreSQL, SQLite …
•Стандартныймодуль pickle реализует простую систему хранения объектов, что позволяет программам сохранять и восстанавливать объекты Python в файлах или в специализированных объектах.
•Cторонними разработчиками создана система ZODB, которая представляет собойполностью объектно-ориентированную базу данных для использования в сценариях на языке Python.
•Существуют также инструменты, такие как SQLObject и SQLAlchemy, которые отображают реляционные таблицы в модель классов языка Python.
•Начиная с версии Python 2.5, стандартнойчастью Python стала база данных
SQLite.
"Pickling" - процесс преобразования объекта Python в поток байтов, а "unpickling" - обратная операция, в результате которой поток байтов преобразуется обратно в Python-объект. Так как поток байтов легко можно записать в файл, модуль pickle широко применяется для сохранения и загрузки сложных объектов в Python.

Быстрое создание прототипов
•В программах на языке Python могут взаимодействовать компоненты, написанные на Python и на C. Благодаря этому можно сначала создавать прототипы систем на языке Python, а затем переносить выбранные компоненты на компилирующие языки, такие как C и C++.
•Python не требует, чтобы система была полностью переписана, как только прототип будет отлажен. Части системы, которые не требуют такойэффективности выполнения, какую обеспечивает C++, можно оставить на языке Python, что существенно упростит сопровождение и использование такойсистемы.

Программирование математических и научных вычислений
•Расширение NumPy для математических вычисленийдобавляет поддержку больших многомерных массивов и матриц, вместе с большой библиотекой высокоуровневых математических функций для операций с этими массивами.
•Популярные расширения SciPy и ScientificPython предоставляют дополнительные библиотеки для научных вычисленийи используют возможности расширения NumPy.
•Дополнительные инструменты математических вычисленийдля Python поддерживают возможность создания анимационных эффектов и трехмерных объектов, позволяют организовать параллельные вычисления.

Имногое другое …
•Создавать игровые программы и анимационные ролики с помощью системы pygame;
•Обмениваться данными с другими компьютерами через последовательныйпорт с помощью расширения PySerial;
•Обрабатывать изображения с помощью расширенийPIL, PyOpenGL, Blender, Maya;
•Управлять роботом с помощью инструмента PyRo;
•Производить разбор XML-документов с помощью пакета xml, модуля xmlrpclib;
•Программировать искусственныйинтеллект с помощью эмулятора нейросетеии оболочек экспертных систем;
•Анализировать фразы на естественном языке с помощью пакета NLTK;
•Разложить пасьянс с помощью программы PySol.
Поддержку многих других прикладных областейможно найти на веб-сайте PyPI (the Python Package Index) - https://pypi.python.org/pypi
Многие из этих областейприменения Python – всего лишь разновидности одной и тойже роли под названием «интеграция компонентов».

Примеры проектов, использующих Python:
•Поисковая система Google.
•Веб-фреймворк App Engine от компании Google.
•Служба коллективного использования видеоматериалов YouTube.
•Программа для обмена файлами в пиринговых сетях BitTorrent.
•Система трехмерного моделирования и создания мультипликации Maya поддерживает интерфейс для управления из сценариев на языке Python.
•В реализации почтового сервера IronProt используется более 1 миллиона строк программного кода на языке Python.
•Следующие компании широко используют Python в своих разработках:
•EVE Online и Massively Multiplayer Online Game (MMOG);
•Intel, Cisco, Hewlett-Packard, Seagate, Qualcomm и IBM - для тестирования аппаратного обеспечения;
•Industrial Light & Magic, Pixar - в производстве анимационных фильмов;
•JPMorgan Chase, UBS, Getco и Citadel - для прогнозирования финансового рынка;
• агенство NASA, Los Alamos, Fermilab, JPL - для научных вычислений;
•iRobot - в разработке коммерческих роботизированных устройств;
•ESRI - в качестве инструмента настройки геоинформационных программных продуктов под нужды конечного пользователя;
•NSA - для шифрования и анализа разведданных.

Функциональные возможности
•Динамическая типизация. Python сам следит за типами объектов, используемых в программе, благодаря чему не требуется писать длинные и сложные объявления в программном коде.
•Автоматическое управление памятью. Python автоматически распределяет память под объекты и освобождает ее, когда объекты становятся ненужными.
•Модульное программирование. Модули, классы и исключения позволяют разбить систему на составляющие, применять ООП для создания программного кода многократного пользования и элегантно обрабатывать возникающие события.
•Встроенные типы объектов. Python предоставляет наиболее типичные структуры данных, такие как списки, словари и строки, в виде особенностей, присущих самому языку программирования. Эти типы отличаются высокойгибкостью и удобством.
Для работы с ними в Python имеются мощные стандартные средства, включая такие операции, как конкатенация (объединение коллекций), получение срезов (извлечение части коллекции), сортировка, отображение.
•Библиотеки утилит. Для выполнения более узких задач существует большая коллекция библиотечных инструментов, которые поддерживают практически все, что только может потребоваться, – от поиска с использованием регулярных выраженийдо работы в сети. Библиотечные инструменты языка Python – это то место, где выполняется большая часть операций.

посмотреть тут: