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')
Функции — «украшатели» методов классов
Эти функции будут рассмотрены в лекции, посвященной ООП.
Обзор стандартной библиотеки
Модули стандартной библиотеки можно условно разбить на группы по тематике.
1. Сервисы периода выполнения. Модули: sys
atexit, copy, traceback, math, cmath, random, time, calendar, datetime, sets, array, struct, itertools, locale, gettext.2. Поддержка цикла разработки. Модули: pdb
hotshot, profile, unittest, pydoc. Пакеты docutils, distutils.3. Взаимодействие с ОС (файлы, процессы). Модули: os
os.path, getopt, glob, popen2, shutil, select, signal, stat, tempfile.3. Обработка текстов. Модули: string
re, StringIO, codecs, difflib, mmap, sgmllib, htmllib, htmlentitydefs. Пакет xml.3. Многопоточные вычисления. Модули: threading
thread, Queue.4. Хранение данных. Архивация. Модули: pickle
shelve, anydbm, gdbm, gzip, zlib, zipfile, bz2, csv, tarfile.5. Платформо–зависимые модули. Для UNIX: commands
pwd, grp, fcntl, resource, termios, readline, rlcompleter. Для Windows: msvcrt, _winreg, winsound.6. Поддержка сети. Протоколы Интернет. Модули: cgi
Cookie, urllib, urlparse, httplib, smtplib, poplib, telnetlib, socket, asyncore. Примеры серверов: SocketServer, BaseHTTPServer, xmlrpclib, asynchat.7. Поддержка Internet. Форматы данных. Модули: quopri
uu, base64, binhex, binascii, rfc822, mimetools, MimeWriter, multifile, mailbox. Пакет email.8. Python о себе. Модули: parser
symbol, token, keyword, inspect, tokenize, pyclbr, py_compile, compileall, dis, compiler.