Роман Сузи - Язык программирования Python
- Название:Язык программирования Python
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Роман Сузи - Язык программирования Python краткое содержание
Курс посвящен одному из бурно развивающихся и популярных в настоящее время сценарных языков программирования — Python. Язык Python позволяет быстро создавать как прототипы программных систем, так и сами программные системы, помогает в интеграции программного обеспечения для решения производственных задач. Python имеет богатую стандартную библиотеку и большое количество модулей расширения практически для всех нужд отрасли информационных технологий. Благодаря ясному синтаксису изучение языка не составляет большой проблемы. Написанные на нем программы получаются структурированными по форме, и в них легко проследить логику работы. На примере языка Python рассматриваются такие важные понятия как: объектно–ориентированное программирование, функциональное программирование, событийно–управляемые программы (GUI–приложения), форматы представления данных (Unicode, XML и т.п.). Возможность диалогового режима работы интерпретатора Python позволяет существенно сократить время изучения самого языка и перейти к решению задач в соответствующих предметных областях. Python свободно доступен для многих платформ, а написанные на нем программы обычно переносимы между платформами без изменений. Это обстоятельство позволяет применять для изучения языка любую имеющуюся аппаратную платформу.
Язык программирования Python - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
В языке Python набор модулей, посвященных одной проблеме, можно поместить в пакет. Хорошим примером такого пакета является пакет xml
, в котором собраны модули для различных аспектов обработки XML.
В программе на Python модуль представлен объектом–модулем, атрибутами которого являются имена, определенные в модуле:
>>> import datetime
>>> d1 = datetime.date(2004, 11, 20)
В данном примере импортируется модуль datetime
. В результате работы оператора import
в текущем пространстве имен появляется объект с именем datetime
.
Модули для использования в программах на языке Python по своему происхождению делятся на обычные (написанные на Python) и модули расширения, написанные на другом языке программирования (как правило, на C). С точки зрения пользователя они могут отличаться разве что быстродействием. Бывает, что в стандартной библиотеке есть два варианта модуля: на Python и на C. Таковы, например, модули pickle
и cPickle
. Обычно модули на Python в чем–то гибче, чем модули расширения.
Модули в Python
Модуль оформляется в виде отдельного файла с исходным кодом. Стандартные модули находятся в каталоге, где их может найти соответствующий интерпретатор языка. Пути к каталогам, в которых Python ищет модули, можно увидеть в значении переменной sys.path
:
>>> sys.path
['', '/usr/local/lib/python23.zip', '/usr/local/lib/python2.3',
'/usr/local/lib/python2.3/plat–linux2', '/usr/local/lib/python2.3/lib–tk',
'/usr/local/lib/python2.3/lib–dynload',
'/usr/local/lib/python2.3/site–packages']
В последних версиях Python модули можно помещать и в zip–архивы для более компактного хранения (по аналогии с jar–архивами в Java).
При запуске программы поиск модулей также идет в текущем каталоге. (Нужно внимательно называть собственные модули, чтобы не было конфликта имен со стандартными или дополнительно установленными модулями.)
Подключение модуля к программе на Python осуществляется с помощью оператора import
. У него есть две формы: import
и from–import
:
import os
import pre as re
from sys import argv, environ
from string import *
С помощью первой формы с текущей областью видимости связывается только имя, ссылающееся на объект модуля, а при использовании второй — указанные имена (или все имена, если применена *
) объектов модуля связываются с текущей областью видимости. При импорте можно изменить имя, с которым объект будет связан, с помощью as
. В первом случае пространство имен модуля остается в отдельном имени и для доступа к конкретному имени из модуля нужно применять точку. Во втором случае имена используются так, как если бы они были определены в текущем модуле:
os.system("dir")
digits = re.compile("\d+")
print argv[0], environ
Повторный импорт модуля происходит гораздо быстрее, так как модули кэшируются интерпретатором. Загруженный модуль можно загрузить еще раз (например, если модуль изменился на диске) с помощью функции reload()
:
import mymodule
...
reload(mymodule)
Однако в этом случае все объекты, являющиеся экземплярами классов из старого варианта модуля, не изменят своего поведения.
При работе с модулями есть и другие тонкости. Например, сам процесс импорта модуля можно переопределить. Подробнее об этом можно узнать в оригинальной документации.
Встроенные функции
В среде Python без дополнительных операций импорта доступно более сотни встроенных объектов, в основном, функций и исключений. Для удобства функции условно разделены по категориям:
1. Функции преобразования типов и классы: coerce
, str
, repr
, int
, list
, tuple
, long
, float
, complex
, dict
, super
, file
, bool
, object
2. Числовые и строковые функции: abs
, divmod
, ord
, pow
, len
, chr
, unichr
, hex
, oct
, cmp
, round
, unicode
3. Функции обработки данных: apply
, map
, filter
, reduce
, zip
, range
, xrange
, max
, min
, iter
, enumerate
, sum
4. Функции определения свойств: hash
, id
, callable
, issubclass
, isinstance
, type
5. Функции для доступа к внутренним структурам: locals
, globals
, vars
, intern
, dir
6. Функции компиляции и исполнения: eval
, execfile
, reload
, __import__
, compile
7. Функции ввода–вывода: input
, raw_input
, open
8. Функции для работы с атрибутами: getattr
, setattr
, delattr
, hasattr
9. Функции-«украшатели» методов классов: staticmethod
, classmethod
, property
10. Прочие функции: buffer
, slice
Уточнить назначение функции, ее аргументов и результата можно в интерактивной сессии интерпретатора Python:
>>> help(len)
Help on built–in function len:
len(...)
len(object) -> integer
Return the number of items of a sequence or mapping.
Или так:
>>> print len.__doc__
len(object) -> integer
Return the number of items of a sequence or mapping.
Функции преобразования типов и классы
Функции и классы из этой категории служат для преобразования типов данных. В старых версиях Python для преобразования к нужному типу использовалась одноименная функция. В новых версиях Python роль таких функций играют имена встроенных классов (однако семантика не изменилась). Для понимания сути достаточно небольшого примера:
>>> int(23.5)
23
>>> float('12.345')
12.345000000000001
>>> dict([('a', 2), ('b', 3)])
{'a': 2, 'b': 3}
>>> object
>>> class MyObject(object):
... pass
...
Числовые и строковые функции
Функции работают с числовыми или строковыми аргументами. В следующей таблице даны описания этих функций.
abs(x) |
Модуль числа x . Результат: |x| . |
divmod(x, y) |
Частное и остаток от деления. Результат: (частное, остаток). |
pow(x, y[, m]) |
Возведение x в степень y по модулю m . Результат: x**y % m . |
round(n[, z]) |
Округление чисел до заданного знака после (или до) точки. |
ord(s) |
Функция возвращает код (или Unicode) заданного ей символа в односимвольной строке. |
chr(n) |
Возвращает строку с символом с заданным кодом. |
len(s) |
Возвращает число элементов последовательности или отображения. |
oct(n) , hex(n) |
Функции возвращают строку с восьмеричным или шестнадцатеричным представлением целого числа n . |
cmp(x, y) |
Сравнение двух значений. Результат: отрицательный, ноль или положительный, в зависимости от результата сравнения. |
unichr(n) |
Возвращает односимвольную Unicode–строку с символом с кодом n. |
unicode(s, [, encoding[, errors]]) |
Создает Unicode–объект, соответствующий строке s в заданной кодировке encoding. Ошибки кодирования обрабатываются в соответствии с errors , который может принимать значения: 'strict' (строгое преобразование), 'replace' (с заменой несуществующих символов) или 'ignore' (игнорировать несуществующие символы). По умолчанию: encoding='utf–8', errors='strict' . |
Следующий пример строит таблицу кодировки кириллических букв в Unicode:
Читать дальшеИнтервал:
Закладка: