Download - Стандартная библиотека
![Page 1: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/1.jpg)
Разные библиотеки – набор подпрограмм или классов, используемых
для разработки программного обеспечения
![Page 2: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/2.jpg)
Стандартная библиотека
преимущества: средства для работы с сетевыми протоколами средства для работы с форматами интернета расширяет доступный набор типов данных
модуль collection:- набор специальных типов данных – контейнеров:
orderedDict- упорядоченный(в порядке добавления элементов) словарь
defaultdict - словарь, вызывающий заданную функцию для отсутствующего в нём элемента
Counter - словарь, который удобно использовать для подсчёта слов
Deque - двусвязанный список
![Page 3: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/3.jpg)
пример работы двусвязного списка:
>>> from collections import deque>>> d = deque('123')>>> d[1]'2'>>> d.pop()'3'>>> d.appendleft('0')>>> list(d)['0', '1', '2‘]
![Page 4: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/4.jpg)
SCV
- для чтения и записи файла в формате scv
- для работы с различными диалектами: «,», «;», табуляция (excel)
пример:
import csvreader =
csv.reader(open("some.csv", "rb"))
for row in reader: print row
![Page 5: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/5.jpg)
конфигурационные файлы
модуль ConfigParser – платформонезависим
пример:[My Section] foodir=%(dir)s/whatever dir=frob version: 1.0
• разделитель ключа и значения: = или :
• замена %(<ключ>)s на значение <ключ>
• foodir будет равно frob/whatever
![Page 6: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/6.jpg)
графические библиотеки
tkinter (на основе средствe tk широко распространённая в мире Linux )
WxPython «инструментарий»,набор основных строительных блоков для граф. Интерфейса, альтернатива tkinter,еще PyGTK, PyQt
pygame – для создания игр и приложений, требующих нестандартного интерфейса, визуализация какой либо информации
pil(python imaging library) – библиотека для работы с растровой графикой
![Page 7: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/7.jpg)
примечаниеpygame.draw.line(window,(10,100,100),(10,200),
(20,300),2)- рисование линий, затем идет цвет линии в формате
(R,G,B), начальные и конечные точки линии в формате (X,Y), ширина линии
pygame.draw.aaline(window,(10,100,100),(10,200),(20,300),2)
- сглаженная линия
pygame.init()pygame.display.set_mode((, ))pygame.display.set_caption('')
- создание окна, размер, название
![Page 8: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/8.jpg)
import pygamefrom pygame.locals import *pygame.init()pygame.display.set_mode((640, 480))pygame.display.set_caption('Primerchik')
import pygamefrom pygame.locals import *pygame.init()window = pygame.display.set_mode((640, 480))pygame.display.set_caption('Primerchik')
pygame.draw.aaline(window,(10,167,100),(515,200),(200,300),2)pygame.draw.aaline(window,(10,167,100),(51,20),(100,150),2)pygame.display.flip()while 1: pass
![Page 9: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/9.jpg)
результат программы
![Page 10: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/10.jpg)
PygLet – также библиотека для создания приложений(например разработка игр)
SDL – библиотека для работы с мультимедиа
вернуться
pygame pyglet
зависит от библиотеки SDL
чистая библиотека python
люди привыкли ее использовать
достаточно новая
ориентирован больше на разработчиков игр
более общего назначения
![Page 11: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/11.jpg)
поддержка полутоновых, бинарных, индексированных, цветных, полноцветных изображений
поддержка форматов bmp, eps, gif, jpeg, pdf, png, prm,tiff
конвертирование изображений из одного формата в другое
редактирование изображения
использование библиотеки из tkinker
поддержка множества форматов( mpeg, pcx)
![Page 12: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/12.jpg)
общие графические компоненты
toplevel окно верхнего уровня
frame рамка, содержит в себе другие визуальные компоненты
label метка
entry поле ввода текста
canvas рисунок, для вывода графических примитивов
button кнопка
radiobutton переключатель
chekbutton флажок
scale шкала
listbox список
scrollbar полоса прокрутки
text форматированный текст
![Page 13: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/13.jpg)
программа Hello World:
from Tkinter import *
tk = Tk()tk.title("Hello World!")def button_clicked(): print "Hello World!"
button=Button(tk,text="Press Me",command=button_clicked)
button.pack(fill=BOTH)
tk.mainloop()
![Page 14: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/14.jpg)
SciPy - открытая библиотека
высококачественных научных инструметов, доступ к обширному спектру математических алгоритмов
- NumPy – подмножество SciPy – библиотека для работы с многомерными массивами
![Page 15: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/15.jpg)
создание массивов scipy.array(alist): n-мерный массив из списка
a = scipy.array([[1,2,3],[4,5,6]])scipy.zeros(shape, dtype=float): n-мерный массив заданной формы, заполненный нулями заданного типа
a = scipy.zeros(100) # 100 элементный массив нулей, тип float
scipy.ones(shape, dtype=float): n-мерный массив заданной формы, заполнены единицами заданного типа
a = scipy.ones(10, int) # 10 элементный массив единиц типа int
id = scipy.eye(10,10) # 10x10 единичная матрица
![Page 16: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/16.jpg)
b = scipy.transpose(a) # заменяет строки на столбцы для двумерной матрицы (транспонирование)
a = scipy.arange(start, stop, increment) # похож на оператор range, но создаёт не список, а массив
a = scipy.random.random((100,100)) # массив размера 100x100 содержащий значения типа float равномерно распределенные на интервале [0.,1.)(создание случайного массива)
![Page 17: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/17.jpg)
индексирования массивов
elem = a[i,j,k] # эквивалентно a[i][j][k] но вероятно более эффективно (многомерное индексирование)
last_elem = a[-1] # последний элемент массива (отрицательное индексирование)
i = scipy.array([0,1,2,1]) # массив индексов для первой оси
j = scipy.array([1,2,3,4]) # массив индексов для второй оси
a[i,j] # возвращает массив ([a[0,1], a[1,2], a[2,3], a[1,4]])
b = scipy.array([True, False, True, False])
a[b] # возвращает массив ([a[0], a[2]]) поскольку только b[0] и b[2] являются True
![Page 18: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/18.jpg)
срезы массивов
asection = a[10:, 30:] # отсутствие завершающего индекса подразумевает "до конца массива"
bsection = b[:10, :30] # отсутствие стартового индекска подразумевает "до начала массива"
![Page 19: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/19.jpg)
поэлементные действия над массивами
c = a + b # поэлементное
d = e * f #поэлементное
g = -h #
y = (x+1)%2 # меняет местами нули и единицы в бинарном массиве x
z = w > 0.0 # возвращает булев массив указывающий какие элементы > 0.0
logspace = 10.**scipy.linspace(-6.0, -1.0, 50) # 50 равномерно распределенных точек между 1.e-06 и 1.0e-01
![Page 20: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/20.jpg)
пример использованияimport sympy
x = sympy.Symbol('x')
y = sympy.Symbol('y')# То же самое, но используя функцию symbols()
x, y = sympy.symbols ('xy')
немного геометриии
r = sympy.Symbol ('r') # радиус круга
circle = sympy.Circle (sympy.Point (0, 0), r) # круг в начале координат
sympy.pprint (circle.area) # площадь круга
2
pi*r
![Page 21: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/21.jpg)
отображение поверхностей:>>> x, y = sympy.symbols ('xy')>>> sympy.Plot (x**2 + y**2) [0]: x**2 + y**2, 'mode=cartesian‘
поверхность можно вращать, приближать, удалять
![Page 22: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/22.jpg)
еще библиотеки Python Robotics(PyRo) – направлена
на создание простой в использовании интерфейс для доступа и управления широкого спектра реальных и моделируемых роботов.
Soya3D – создание 3Dвидео игр
Natural Language Toolkit(NLTK) – набор библиотек и программ для символической и статистической обработки естественного языка
ADOdb - абстракции базы данных библиотеки Python, можно писать приложения последовательно, независимо от основной базы данных системы хранения информации
![Page 23: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/23.jpg)
CherryPy— объектно-ориентированный веб-фреймворк, написанный на языке программирования Python. Спроектирован для быстрой разработки веб-приложений для сети Интернет.
Django— свободный фреймворк для веб-приложений на языке Python. Сайт на Django строится из одного или нескольких приложений, которые рекомендуется делать отчуждаемыми и подключаемыми. Это одно из существенных архитектурных отличий этого фреймворка от некоторых других. Также в отличие от других фреймворков обработчики URL в Django конфигурируются явно при помощи регулярных выражений, а не выводятся автоматически из структуры моделей контроллеров.
![Page 24: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/24.jpg)
JPype —реализующее возможность программам полный доступ к библиотекам классов Java. В отличие от Jython позволяет достичь большего быстродействия и доступ ко всем Python расширениям.
Jython — это реализация языка Python на языке Java. Программы, выполняющиеся в среде Jython могут одновременно использовать классы языков Java и Python.
PyGTK — набор Python-привязок для библиотеки GTK+(библиотека элементов интерфейса).
PyMidas - проект реализующий интерфейс из языка программирования python к библиотекам среды редукции астрономических данных MIDAS.
![Page 25: Стандартная библиотека](https://reader036.vdocuments.site/reader036/viewer/2022081505/56813361550346895d9a7770/html5/thumbnails/25.jpg)
import cherrypy class HelloWorld(object): def index(self): return "Hello World!" index.exposed = True cherrypy.quickstart(HelloWorld())
Импорт CherryPy заявление импорта основных CherryPy модуль.
Мы заявляем, класс с именем HelloWorld . Экземпляр этого класса является объект, который будет опубликован CherryPy . Он содержит один метод, названный индекс , который будет вызываться при корневой URL для сайта предлагается (например, http://localhost/ ). Этот метод возвращает содержимое веб-страницы, в данном случае, 'Hello World!' строки.
Index.exposed = True является необходимым шагом, чтобы рассказать CherryPy , чему индекс () метод будет подвергаться .
cherrypy.quickstart (HelloWorld ()) монтирует экземпляр класса HelloWorld, и начинает встроенный веб-сервер.