Роман Сузи - Язык программирования Python
- Название:Язык программирования Python
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Роман Сузи - Язык программирования Python краткое содержание
Курс посвящен одному из бурно развивающихся и популярных в настоящее время сценарных языков программирования — Python. Язык Python позволяет быстро создавать как прототипы программных систем, так и сами программные системы, помогает в интеграции программного обеспечения для решения производственных задач. Python имеет богатую стандартную библиотеку и большое количество модулей расширения практически для всех нужд отрасли информационных технологий. Благодаря ясному синтаксису изучение языка не составляет большой проблемы. Написанные на нем программы получаются структурированными по форме, и в них легко проследить логику работы. На примере языка Python рассматриваются такие важные понятия как: объектно–ориентированное программирование, функциональное программирование, событийно–управляемые программы (GUI–приложения), форматы представления данных (Unicode, XML и т.п.). Возможность диалогового режима работы интерпретатора Python позволяет существенно сократить время изучения самого языка и перейти к решению задач в соответствующих предметных областях. Python свободно доступен для многих платформ, а написанные на нем программы обычно переносимы между платформами без изменений. Это обстоятельство позволяет применять для изучения языка любую имеющуюся аппаратную платформу.
Язык программирования Python - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
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')
Функции — «украшатели» методов классов
Эти функции будут рассмотрены в лекции, посвященной ООП.
Обзор стандартной библиотеки
Модули стандартной библиотеки можно условно разбить на группы по тематике.
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
.
9. Графический интерфейс. Модуль Tkinter
.
Очень часто модули содержат один или несколько классов, с помощью которых создается объект нужного типа, а затем речь идет уже не об именах из модуля, а об атрибутах этого объекта. И наоборот, некоторые модули содержат лишь функции, слишком общие для того, чтобы работать над произвольными объектами (либо достаточно большой категорией объектов).
Читать дальшеИнтервал:
Закладка: