21
Join the nice side We have Python!!!

Join the python_side

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Join the python_side

Join the nice sideWe have Python!!!

Page 2: Join the python_side

Устали от...

• segfault-ов• логики, смешанной с

представлением• получасовой компиляции• усложненного синтаксиса

?

Page 3: Join the python_side

http://www.python.org

http://www.python.com

Page 4: Join the python_side

Классификация

• Скриптовый• Интерпретируемый• Динамический• Строгий по типизации

o нельзя сложить строку и числоo нет неявных приведений типов

• C-образный синтаксис

Page 5: Join the python_side

Достоинства

• простой синтаксисo мало ключевых словo форматирование 

• легкость в обучении• синтаксическая мощь• скорость• библиотеки 

o масса готовыхo расширяемость

• разумный дизайн (import this)• работает везде

o множество портовo машинно-независимый байт-код

Page 6: Join the python_side

Программы

• текстовые .py файлыo может быть и программой и модулем o это часто используется для тестов

• любой модуль отдельное пространство имен• пространство имен модуля - глобально

Page 7: Join the python_side

Переменные и типы

• не нуждается в объявлении>>> a = 1>>>

• присваивание не возвращает значения• >>> a1

• перед использованием надо создать>>> b.....Name error: name 'b' is not defined

• всегда имеют тип>>> type(a)<type 'int'> 

Page 8: Join the python_side

Строки

• заключаются в кавычки (любые)• тройные кавычки - многострочники• последовательность символов, включая NULL

o фактически заменяют массивы байтов• >>> s = 'Hello'>>> s'Hello'>>> s = "Say 'hello'">>> s"Say 'hello'">>> s = """This can bea multiline string"""

Page 9: Join the python_side

Числа

• int - соответсвует long в Сo >>> 5 / 22

o >>> 5 / 2.02.5

• float - соответсвует double• long - не ограниченной длины

o автоматически конвертируется из into >>> h = 1L << 64>>> h ** 52135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936576L

Page 10: Join the python_side

Списки

• хранят любые элементыo заменяют массивыo задаются с помощью [ ]

• >>> lst = []>>> lst.append(1)>>> lst.append("hi")>>> len(lst)2>>> lst[0] = 2>>> a = lst.pop()

Page 11: Join the python_side

Tuples

• таплы, или кортежиo сходны по принципу со спискамиo последовательность любых элементовo не изменяемы

•  автоматическая упаковка/распаковкаo >>> point = 2, 3>>> x, y = point>>> x2

o >>> single = (1,)• используются для возврата нескольких значений из

функций

Page 12: Join the python_side

Словари

• хранят пары ключ-значениеo иногда называются хешамиo ключи должны быть неизменяемымиo значения могут быть любыми

• >>> d = {}>>> d['foo'] = 'bar'>>> d[1] = 'boz'>>> cd = {'name': 'John Applseed',          'age': 15,          'tags': ['friend', 'school']}

Page 13: Join the python_side

Блоки

• формируются отступамиo двоеточие - начало блока o можно использовать пробелы и табыo можно смешивать, но лучше - не нужноo стандарт - 4 пробела

• >>> if True:...     print 'Hi'... Hi>>> 

Page 14: Join the python_side

Циклы

• цикл for используется для итерирования• >>> for ch in 'xyz':...     print ch...xyz

• функция xrange() возвращает генератор для циклов со счетчиком

• while - цикл с условием• есть операторы continue и break• циклы могут иметь блок else

Page 15: Join the python_side

Функции 

• объявляются ключевым словом def:o >>> def useless(val):...    return val + 2...>>> useless(3)5

• функции являются значениямиo >>> useless<function useless at fac680>>>> foo = useless>>> foo(2)5 

Page 16: Join the python_side

Классы

• создаются ключевым словом 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

Page 17: Join the python_side

Классы (продолжение)

• специальные методыo __init__ - инициализаторo __del__ - деструктор

• self - явный указатель на экземпляр класса o автоматически подставляется при вызовеo имя self - не обязательное, но рекомендуемое

• как и функция является значениемo >>> Other =  Simple>>> cl = Other(2)

Page 18: Join the python_side

Модули

• реализуются на 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')

Page 19: Join the python_side

Исключения

• используются для обработки ошибок• >>> try:...     1/0... except ZeroDivisionError:...     print 'Ouch'...Ouch

• Допускается несколько блоков except• Блок finally - для всегда выполняющегося кода• Блок else - если не было исключений

Page 20: Join the python_side

Потоки

• легко реализуются• >>> 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 

Page 21: Join the python_side

Стандартная библиотека

• в поставку python входит набор стандартных библиотек• реализована масса функций

o сокеты; протоколы интернет; сервисы ОС; GUI (Tk); работа с СУБД; работа с датами, временем и календарями; отладчик; профилировщик; парсер python; работа с файлами; персистентность; многопоточность и многопроцессовость и т.д.