Чтение онлайн

на главную - закладки

Жанры

Язык программирования Python
Шрифт:

cmp(x, y) Сравнение двух значений. Результат: отрицательный, ноль или положительный, в зависимости от результата сравнения.

unichr(n) Возвращает односимвольную Unicode–строку с символом с кодом n.

unicode(s, [, encoding[, errors]]) Создает Unicode–объект, соответствующий строке s в заданной кодировке encoding. Ошибки кодирования обрабатываются в соответствии с errors, который может принимать значения: 'strict' (строгое преобразование), 'replace' (с заменой несуществующих символов) или 'ignore' (игнорировать

несуществующие символы). По умолчанию: encoding='utf–8', errors='strict'.

Следующий пример строит таблицу кодировки кириллических букв в Unicode:

Листинг

print «Таблица Unicode (русские буквы)».center(18*4)

i = 0

for c in «АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ»\

«абвгдежзийклмнопрстуфхцчшщъыьэюя»:

u = unicode(c, 'koi8–r')

print "%3i: %1s %s» % (ord(u), c, `u`),

i += 1

if i % 4 == 0:

print

Функции обработки данных

Эти функции подробнее будут рассмотрены в лекции по функциональному программированию. Пример с функциями range и enumerate:

Листинг

>>> for i, c in enumerate(«ABC»):

… print i, c

0 A

1 B

2 C

>>> print range(4, 20, 2)

[4, 6, 8, 10, 12, 14, 16, 18]

Функции определения свойств

Эти функции обеспечивают доступ к некоторым встроенным атрибутам объектов и другим свойствам. Следующий пример показывает некоторые из этих функций:

Листинг

>>> s = «abcde»

>>> s1 = «abcde»

>>> s2 = «ab» + «cde»

>>> print «hash:", hash(s), hash(s1), hash(s2)

hash: — 1332677140–1332677140–1332677140

>>> print «id:", id(s), id(s1), id(s2)

id: 1076618592 1076618592 1076618656

Здесь, можно увидеть, что для одного и того же строкового литерала «abcde» получается один и тот же объект, тогда как для одинаковых по значению объектов вполне можно получить разные объекты.

Функции для доступа к внутренним структурам

В современной реализации языка Python глобальные и локальные переменные доступны в виде словаря благодаря функциям globals и locals. Правда, записывать что–либо в эти словари не рекомендуется.

Функция vars возвращает таблицу локальных имен некоторого объекта (если параметр не задан, она возвращает то же, что и locals). Обычно используется в качестве словаря для операции форматирования:

Листинг

a = 1

b = 2

c = 3

print "%(a)s + %(b)s = %(c)s» % vars

Функции компиляции и исполнения

Функция reload уже рассматривалась, а из остальных функций этой категории особого внимания заслуживает eval. Как следует из названия, эта функция вычисляет переданное ей выражение. В примере ниже вычисляется выражение, которое строится динамически:

Листинг

a = 2

b = 3

for op in

«+-*/%":

e = «a " + op + " b»

print e, «->", eval(e)

У функции eval кроме подлежащего вычислению выражения есть еще два параметра — с их помощью можно задать глобальное и локальное пространства имен, из которых будут разрешаться имена выражения. Пример выше, переписанный для использования с собственным словарем имен в качестве глобального пространства имен:

Листинг

for op in «+-*/%":

e = «a " + op + " b»

print e, «->", eval(e, {'a': 2, 'b': 3})

Функцией eval легко злоупотребить. Нужно стараться использовать ее только тогда, когда без нее не обойтись. Из соображений безопасности не следует применять eval для аргумента, в котором присутствует непроверенный ввод от пользователя.

Функции ввода–вывода

Функции input и raw_input используются для ввода со стандартного ввода. В серьезных программах их лучше не применять. Функция open служит для открытия файла по имени для чтения, записи или изменения. В следующем примере файл открывается для чтения:

Листинг

f = open(«file.txt», «r», 1)

for line in f:

f.close

Функция принимает три аргумента: имя файла (путь к файлу), режим открытия («r» — чтение, «w» — запись, «a» — добавление или «w+», «a+», «r+» — изменение. Также может прибавляться «t», что обозначает текстовый файл. Это имеет значение только на платформе Windows). Третий аргумент указывает режим буферизации: 0 — без буферизации, 1 — построчная буферизация, больше 1 — буфер указанного размера в байтах.

В новых версиях Python функция open является синонимом для file.

Функции для работы с атрибутами

У объектов в языке Python могут быть атрибуты (в терминологии языка C++ - члены–данные и члены–функции). Следующие две программы эквивалентны:

Листинг

# первая программа:

class A:

pass

a = A

a.attr = 1

try:

print a.attr

except:

print None

del a.attr

# вторая программа:

class A:

pass

a = A

setattr(a, 'attr', 1)

if hasattr(a, 'attr'):

print getattr(a, 'attr')

else:

print None

delattr(a, 'attr')

Функции — «украшатели» методов классов

Эти функции будут рассмотрены в лекции, посвященной ООП.

Обзор стандартной библиотеки

Модули стандартной библиотеки можно условно разбить на группы по тематике.

Сервисы периода выполнения. Модули: sys, atexit, copy, traceback, math, cmath, random, time, calendar, datetime, sets, array, struct, itertools, locale, gettext.

Поделиться:
Популярные книги

Лекарь

Щепетнов Евгений Владимирович
1. Истринский цикл
Фантастика:
фэнтези
8.24
рейтинг книги
Лекарь

Как я строил магическую империю 14

Зубов Константин
14. Как я строил магическую империю
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Как я строил магическую империю 14

"Инквизитор". Компиляция. Книги 1-12

Конофальский Борис
Фантастика:
фэнтези
5.00
рейтинг книги
Инквизитор. Компиляция. Книги 1-12

Тринадцатый X

NikL
10. Видящий смерть
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Тринадцатый X

Виконт. Книга 3. Знамена Легиона

Юллем Евгений
3. Псевдоним `Испанец`
Фантастика:
фэнтези
попаданцы
аниме
7.00
рейтинг книги
Виконт. Книга 3. Знамена Легиона

Ветер и искры. Тетралогия

Пехов Алексей Юрьевич
Ветер и искры
Фантастика:
фэнтези
9.45
рейтинг книги
Ветер и искры. Тетралогия

Газлайтер. Том 31

Володин Григорий Григорьевич
31. История Телепата
Фантастика:
боевая фантастика
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Газлайтер. Том 31

Кодекс Охотника XXVIII

Винокуров Юрий
28. Кодекс Охотника
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Кодекс Охотника XXVIII

Наемный корпус

Вайс Александр
5. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Наемный корпус

Чужак из ниоткуда 2

Евтушенко Алексей Анатольевич
2. Чужак из ниоткуда
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чужак из ниоткуда 2

Искатель 3

Шиленко Сергей
3. Валинор
Фантастика:
попаданцы
рпг
фэнтези
5.00
рейтинг книги
Искатель 3

Сирота

Ланцов Михаил Алексеевич
1. Помещик
Фантастика:
альтернативная история
5.71
рейтинг книги
Сирота

Кодекс Охотника. Книга XXXIX

Сапфир Олег
39. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
боевая фантастика
5.00
рейтинг книги
Кодекс Охотника. Книга XXXIX

Убивать чтобы жить 6

Бор Жорж
6. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 6