5. Достоинства
• простой синтаксис
o мало ключевых слов
o форматирование
• легкость в обучении
• синтаксическая мощь
• скорость
• библиотеки
o масса готовых
o расширяемость
• разумный дизайн (import this)
• работает везде
o множество портов
o машинно-независимый байт-код
6. Программы
• текстовые .py файлы
o может быть и программой и модулем
o это часто используется для тестов
• любой модуль отдельное пространство имен
• пространство имен модуля - глобально
7. Переменные и типы
• не нуждается в объявлении
>>> a = 1
>>>
• присваивание не возвращает значения
• >>> a
1
• перед использованием надо создать
>>> b
.....
Name error: name 'b' is not defined
• всегда имеют тип
>>> type(a)
<type 'int'>
8. Строки
• заключаются в кавычки (любые)
• тройные кавычки - многострочники
• последовательность символов, включая NULL
o фактически заменяют массивы байтов
• >>> s = 'Hello'
>>> s
'Hello'
>>> s = "Say 'hello'"
>>> s
"Say 'hello'"
>>> s = """This can be
a multiline string"""
9. Числа
• int - соответсвует long в С
o >>> 5 / 2
2
o >>> 5 / 2.0
2.5
• float - соответсвует double
• long - не ограниченной длины
o автоматически конвертируется из int
o >>> h = 1L << 64
>>> h ** 5
2135987035920910082395021706169552114
6027045223566527699470416078222197257
80640550022962086936576L
10. Списки
• хранят любые элементы
o заменяют массивы
o задаются с помощью [ ]
• >>> lst = []
>>> lst.append(1)
>>> lst.append("hi")
>>> len(lst)
2
>>> lst[0] = 2
>>> a = lst.pop()
11. Tuples
• таплы, или кортежи
o сходны по принципу со списками
o последовательность любых элементов
o не изменяемы
• автоматическая упаковка/распаковка
o >>> point = 2, 3
>>> x, y = point
>>> x
2
o >>> single = (1,)
• используются для возврата нескольких значений из
функций
12. Словари
• хранят пары ключ-значение
o иногда называются хешами
o ключи должны быть неизменяемыми
o значения могут быть любыми
• >>> d = {}
>>> d['foo'] = 'bar'
>>> d[1] = 'boz'
>>> cd = {'name': 'John Applseed',
'age': 15,
'tags': ['friend', 'school']}
13. Блоки
• формируются отступами
o двоеточие - начало блока
o можно использовать пробелы и табы
o можно смешивать, но лучше - не нужно
o стандарт - 4 пробела
• >>> if True:
... print 'Hi'
...
Hi
>>>
14. Циклы
• цикл for используется для итерирования
• >>> for ch in 'xyz':
... print ch
...
x
y
z
• функция xrange() возвращает генератор для циклов со
счетчиком
• while - цикл с условием
• есть операторы continue и break
• циклы могут иметь блок else
15. Функции
• объявляются ключевым словом def:
o >>> def useless(val):
... return val + 2
...
>>> useless(3)
5
• функции являются значениями
o >>> useless
<function useless at fac680>
>>> foo = useless
>>> foo(2)
5
16. Классы
• создаются ключевым словом class
• бывают old и new style
• >>> class Simple(object):
... def __init__(self, param):
... self._param = param
... self._inner = 5
... def get_param(self):
... return self._param
...
>>> s = Simple(4)
>>> print s.get_param()
4
17. Классы (продолжение)
• специальные методы
o __init__ - инициализатор
o __del__ - деструктор
• self - явный указатель на экземпляр класса
o автоматически подставляется при вызове
o имя self - не обязательное, но рекомендуемое
• как и функция является значением
o >>> Other = Simple
>>> cl = Other(2)
18. Модули
• реализуются на Python и C/C++
• для подключения используется import
o >>> import math
>>> mat.sin(1)
• возможен частичный импорт
o >>> from math import cos
>>> cos(0)
• импорт со сменой имени
o >>> from os.path import join as path_join
>>> path_join('/usr/bin/', 'python')
19. Исключения
• используются для обработки ошибок
• >>> try:
... 1/0
... except ZeroDivisionError:
... print 'Ouch'
...
Ouch
• Допускается несколько блоков except
• Блок finally - для всегда выполняющегося кода
• Блок else - если не было исключений
20. Потоки
• легко реализуются
• >>> from time import sleep
>>> from threading import Thread
>>> class MyThread(Thread):
... def run(self):
... for i in xrange(3):
... print i,
... sleep(1)
...
>>> t = MyThread()
>>> t.start()
0 1 2
21. Стандартная библиотека
• в поставку python входит набор стандартных
библиотек
• реализована масса функций
o сокеты; протоколы интернет; сервисы ОС; GUI (Tk);
работа с СУБД; работа с датами, временем и
календарями; отладчик; профилировщик; парсер
python; работа с файлами; персистентность;
многопоточность и многопроцессовость и т.д.