Язык Python
Что такое Python?
Python - это интерпретируемый объектно-ориентированный язык программирования высокого уровня с динамической семантикой. Его высокоуровневые встроенные структуры данных в сочетании с динамической типизацией и динамическим связыванием делают его очень привлекательным для быстрой разработки приложений, а также для использования в качестве языка сценариев или клея для соединения существующих компонентов между собой.
Простой, легко осваиваемый синтаксис Python подчеркивает удобство чтения и, следовательно, снижает затраты на сопровождение программ. Python поддерживает модули и пакеты, что способствует модульности программ и повторному использованию кода. Интерпретатор Python и обширная стандартная библиотека доступны в исходном или двоичном виде бесплатно для всех основных платформ и могут свободно распространяться.
Часто программисты влюбляются в Python из-за повышения производительности, которую он обеспечивает. Поскольку отсутствует этап компиляции, цикл "редактирование-тестирование-отладка" выполняется невероятно быстро. Отладка программ на Python очень проста: ошибка или плохой ввод никогда не приведут к ошибке сегментации. Вместо этого, когда интерпретатор обнаруживает ошибку, он поднимает исключение.
Если программа не перехватывает исключение, интерпретатор печатает трассировку стека. Отладчик на уровне исходного кода позволяет просматривать локальные и глобальные переменные, оценивать произвольные выражения, устанавливать точки останова, перебирать код по строкам и т.д. Отладчик написан на самом языке Python, что свидетельствует об интроспективности Python.
С другой стороны, зачастую самым быстрым способом отладки программы является добавление нескольких операторов печати в исходный текст: быстрый цикл редактирование-тестирование-отладка делает этот простой подход очень эффективным.
Области применения языка Python
Язык Python используется во многих прикладных областях. Вот некоторые из них. В Python Package Index перечислены тысячи модулей сторонних разработчиков для Python.
Веб-разработка
Python предлагает множество вариантов для веб-разработки:
- фреймворки, такие как Django и Pyramid,
- микрофреймворки, такие как Flask и Bottle,
- продвинутые системы управления контентом, такие как Plone и Django,
- стандартная библиотека Python поддерживает многие интернет-протоколы:
- HTML и XML,
- JSON,
- обработка электронной почты,
- поддержка FTP, IMAP и других интернет-протоколов,
- простой в использовании интерфейс сокетов.
А в индексе пакетов есть еще несколько библиотек:
- Requests, мощная клиентская библиотека HTTP,
- Beautiful Soup, парсер HTML, который может обрабатывать всевозможные странные HTML,
- Feedparser для разбора RSS/Atom-каналов,
- Paramiko, реализующая протокол SSH2,
- Twisted Python - фреймворк для асинхронного сетевого программирования.
Научные и численные
Язык Python широко используется в научных и численных вычислениях:
- SciPy - это набор пакетов для математики, естественных наук и инженерии,
- Pandas - библиотека для анализа данных и моделирования,
- IPython - мощная интерактивная оболочка, позволяющая легко редактировать и записывать сеанс работы, а также поддерживающая визуализацию и параллельные вычисления.
Графические интерфейсы рабочего стола
Библиотека графического интерфейса Tk входит в состав большинства бинарных дистрибутивов Python.
Некоторые наборы инструментов, которые можно использовать на нескольких платформах, доступны отдельно:
- wxWidgets,
- Kivy для написания мультисенсорных приложений,
- Qt через pyqt или pyside.
Также доступны наборы инструментов для конкретных платформ:
- GTK+,
- Microsoft Foundation Classes через расширения win32.
Разработка программного обеспечения
Python часто используется в качестве вспомогательного языка для разработчиков программного обеспечения, для контроля и управления сборкой, тестирования и во многих других случаях.
- SCons для контроля сборки,
- Buildbot и Apache Gump для автоматизированной непрерывной компиляции и тестирования,
- Roundup или Trac для отслеживания ошибок и управления проектами.
Пример кода
# global_var is in the global namespace
global_var = 10
def outer_function():
# outer_var is in the local namespace
outer_var = 20
def inner_function():
# inner_var is in the nested local namespace
inner_var = 30
print(inner_var)
print(outer_var)
inner_function()
# print the value of the global variable
print(global_var)
# call the outer function and print local and nested local variables
outer_function()