SlideShare una empresa de Scribd logo
1 de 21
Join the nice side
We have Python!!!
Устали от...
• segfault-ов
• логики, смешанной с
представлением
• получасовой компиляции
• усложненного синтаксиса
?
http://www.python.org
http://www.python.com
Классификация
• Скриптовый
• Интерпретируемый
• Динамический
• Строгий по типизации
o нельзя сложить строку и число
o нет неявных приведений типов
• C-образный синтаксис
Достоинства
• простой синтаксис
o мало ключевых слов
o форматирование
• легкость в обучении
• синтаксическая мощь
• скорость
• библиотеки
o масса готовых
o расширяемость
• разумный дизайн (import this)
• работает везде
o множество портов
o машинно-независимый байт-код
Программы
• текстовые .py файлы
o может быть и программой и модулем
o это часто используется для тестов
• любой модуль отдельное пространство имен
• пространство имен модуля - глобально
Переменные и типы
• не нуждается в объявлении
>>> a = 1
>>>
• присваивание не возвращает значения
• >>> a
1
• перед использованием надо создать
>>> b
.....
Name error: name 'b' is not defined
• всегда имеют тип
>>> type(a)
<type 'int'>
Строки
• заключаются в кавычки (любые)
• тройные кавычки - многострочники
• последовательность символов, включая NULL
o фактически заменяют массивы байтов
• >>> s = 'Hello'
>>> s
'Hello'
>>> s = "Say 'hello'"
>>> s
"Say 'hello'"
>>> s = """This can be
a multiline string"""
Числа
• 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
Списки
• хранят любые элементы
o заменяют массивы
o задаются с помощью [ ]
• >>> lst = []
>>> lst.append(1)
>>> lst.append("hi")
>>> len(lst)
2
>>> lst[0] = 2
>>> a = lst.pop()
Tuples
• таплы, или кортежи
o сходны по принципу со списками
o последовательность любых элементов
o не изменяемы
• автоматическая упаковка/распаковка
o >>> point = 2, 3
>>> x, y = point
>>> x
2
o >>> single = (1,)
• используются для возврата нескольких значений из
функций
Словари
• хранят пары ключ-значение
o иногда называются хешами
o ключи должны быть неизменяемыми
o значения могут быть любыми
• >>> d = {}
>>> d['foo'] = 'bar'
>>> d[1] = 'boz'
>>> cd = {'name': 'John Applseed',
'age': 15,
'tags': ['friend', 'school']}
Блоки
• формируются отступами
o двоеточие - начало блока
o можно использовать пробелы и табы
o можно смешивать, но лучше - не нужно
o стандарт - 4 пробела
• >>> if True:
... print 'Hi'
...
Hi
>>>
Циклы
• цикл for используется для итерирования
• >>> for ch in 'xyz':
... print ch
...
x
y
z
• функция xrange() возвращает генератор для циклов со
счетчиком
• while - цикл с условием
• есть операторы continue и break
• циклы могут иметь блок else
Функции
• объявляются ключевым словом def:
o >>> def useless(val):
... return val + 2
...
>>> useless(3)
5
• функции являются значениями
o >>> useless
<function useless at fac680>
>>> foo = useless
>>> foo(2)
5
Классы
• создаются ключевым словом 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
Классы (продолжение)
• специальные методы
o __init__ - инициализатор
o __del__ - деструктор
• self - явный указатель на экземпляр класса
o автоматически подставляется при вызове
o имя self - не обязательное, но рекомендуемое
• как и функция является значением
o >>> Other = Simple
>>> cl = Other(2)
Модули
• реализуются на 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')
Исключения
• используются для обработки ошибок
• >>> try:
... 1/0
... except ZeroDivisionError:
... print 'Ouch'
...
Ouch
• Допускается несколько блоков except
• Блок finally - для всегда выполняющегося кода
• Блок else - если не было исключений
Потоки
• легко реализуются
• >>> 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
Стандартная библиотека
• в поставку python входит набор стандартных
библиотек
• реализована масса функций
o сокеты; протоколы интернет; сервисы ОС; GUI (Tk);
работа с СУБД; работа с датами, временем и
календарями; отладчик; профилировщик; парсер
python; работа с файлами; персистентность;
многопоточность и многопроцессовость и т.д.

Más contenido relacionado

La actualidad más candente

Cpp/cli particularities
Cpp/cli particularitiesCpp/cli particularities
Cpp/cli particularities
mcroitor
 
5. java lecture io
5. java lecture io5. java lecture io
5. java lecture io
MERA_school
 

La actualidad más candente (20)

Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.
 
Лекция 3. Декораторы и модуль functools.
Лекция 3. Декораторы и модуль functools.Лекция 3. Декораторы и модуль functools.
Лекция 3. Декораторы и модуль functools.
 
Лекция 2. Всё, что вы хотели знать о функциях в Python.
Лекция 2. Всё, что вы хотели знать о функциях в Python.Лекция 2. Всё, что вы хотели знать о функциях в Python.
Лекция 2. Всё, что вы хотели знать о функциях в Python.
 
алгоритмы stl
алгоритмы stlалгоритмы stl
алгоритмы stl
 
Лекция 7. Исключения и менеджеры контекста.
Лекция 7. Исключения и менеджеры контекста.Лекция 7. Исключения и менеджеры контекста.
Лекция 7. Исключения и менеджеры контекста.
 
Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.
 
десант презентация
десант презентациядесант презентация
десант презентация
 
стандартная библиотека с++: введение
стандартная библиотека с++: введениестандартная библиотека с++: введение
стандартная библиотека с++: введение
 
Cpp/cli particularities
Cpp/cli particularitiesCpp/cli particularities
Cpp/cli particularities
 
Discovering Lambdas in Java 8
Discovering Lambdas in Java 8Discovering Lambdas in Java 8
Discovering Lambdas in Java 8
 
Лекция 10. Классы 2.
Лекция 10. Классы 2.Лекция 10. Классы 2.
Лекция 10. Классы 2.
 
Красота и изящность стандартной библиотеки Python
Красота и изящность стандартной библиотеки PythonКрасота и изящность стандартной библиотеки Python
Красота и изящность стандартной библиотеки Python
 
java 8
java 8java 8
java 8
 
C++ Базовый. Занятие 02.
C++ Базовый. Занятие 02.C++ Базовый. Занятие 02.
C++ Базовый. Занятие 02.
 
Javascript 1
Javascript 1Javascript 1
Javascript 1
 
контейнеры STL
контейнеры STLконтейнеры STL
контейнеры STL
 
Python: ввод и вывод
Python: ввод и выводPython: ввод и вывод
Python: ввод и вывод
 
5. java lecture io
5. java lecture io5. java lecture io
5. java lecture io
 
Stream API
Stream APIStream API
Stream API
 
Java. Переменные, типы данных, операторы
Java. Переменные, типы данных, операторыJava. Переменные, типы данных, операторы
Java. Переменные, типы данных, операторы
 

Destacado

Get the most from your professional network on LinkedIn
Get the most from your professional network on LinkedInGet the most from your professional network on LinkedIn
Get the most from your professional network on LinkedIn
Brian Hinchcliffe
 
2011 Bucks, Bulls and Once-in-a-Lifetime Permit Number Recommendations, May 4
2011 Bucks, Bulls and Once-in-a-Lifetime Permit Number Recommendations, May 42011 Bucks, Bulls and Once-in-a-Lifetime Permit Number Recommendations, May 4
2011 Bucks, Bulls and Once-in-a-Lifetime Permit Number Recommendations, May 4
Utah Division of Wildlife Resources
 
Pp presentasjon eksamenssprosess digitale medier des.2010 siw
Pp presentasjon eksamenssprosess digitale medier des.2010 siwPp presentasjon eksamenssprosess digitale medier des.2010 siw
Pp presentasjon eksamenssprosess digitale medier des.2010 siw
siwriise
 
2011 CWMU antlerless permit review and recommendations, May 4, 2011
2011 CWMU antlerless permit review and recommendations, May 4, 20112011 CWMU antlerless permit review and recommendations, May 4, 2011
2011 CWMU antlerless permit review and recommendations, May 4, 2011
Utah Division of Wildlife Resources
 
【STR3 パネルトーク】
【STR3 パネルトーク】【STR3 パネルトーク】
【STR3 パネルトーク】
Up Hatch
 

Destacado (20)

Strategies in the Statewide Deer Management Plan, April 2011
Strategies in the Statewide Deer Management Plan, April 2011Strategies in the Statewide Deer Management Plan, April 2011
Strategies in the Statewide Deer Management Plan, April 2011
 
Сгореть на работе и восстать из пепла (SQA Days-15)
Сгореть на работе и восстать из пепла (SQA Days-15)Сгореть на работе и восстать из пепла (SQA Days-15)
Сгореть на работе и восстать из пепла (SQA Days-15)
 
Get the most from your professional network on LinkedIn
Get the most from your professional network on LinkedInGet the most from your professional network on LinkedIn
Get the most from your professional network on LinkedIn
 
Жизненный цикл тестировщика (Урансофт, семинар TrueTester #3)
Жизненный цикл тестировщика (Урансофт, семинар TrueTester #3)Жизненный цикл тестировщика (Урансофт, семинар TrueTester #3)
Жизненный цикл тестировщика (Урансофт, семинар TrueTester #3)
 
Government Mobile Marketing Guide
Government Mobile Marketing GuideGovernment Mobile Marketing Guide
Government Mobile Marketing Guide
 
Catalyst mini
Catalyst miniCatalyst mini
Catalyst mini
 
Impacts of Predation on Mule Deer in Utah, April 2011
Impacts of Predation on Mule Deer in Utah, April 2011Impacts of Predation on Mule Deer in Utah, April 2011
Impacts of Predation on Mule Deer in Utah, April 2011
 
Dgu ppt en_fin
Dgu ppt en_finDgu ppt en_fin
Dgu ppt en_fin
 
2011 Bucks, Bulls and Once-in-a-Lifetime Permit Number Recommendations, May 4
2011 Bucks, Bulls and Once-in-a-Lifetime Permit Number Recommendations, May 42011 Bucks, Bulls and Once-in-a-Lifetime Permit Number Recommendations, May 4
2011 Bucks, Bulls and Once-in-a-Lifetime Permit Number Recommendations, May 4
 
Mobile CRM Webinar: 6 Must Haves For Effective Cross Channel CRM
Mobile CRM Webinar: 6 Must Haves For Effective Cross Channel CRMMobile CRM Webinar: 6 Must Haves For Effective Cross Channel CRM
Mobile CRM Webinar: 6 Must Haves For Effective Cross Channel CRM
 
Pp presentasjon eksamenssprosess digitale medier des.2010 siw
Pp presentasjon eksamenssprosess digitale medier des.2010 siwPp presentasjon eksamenssprosess digitale medier des.2010 siw
Pp presentasjon eksamenssprosess digitale medier des.2010 siw
 
Mobile-led innovations for Direct customer relationships
Mobile-led innovations for Direct customer relationshipsMobile-led innovations for Direct customer relationships
Mobile-led innovations for Direct customer relationships
 
Fundraising Back Office Show
Fundraising Back Office ShowFundraising Back Office Show
Fundraising Back Office Show
 
2011 CWMU antlerless permit review and recommendations, May 4, 2011
2011 CWMU antlerless permit review and recommendations, May 4, 20112011 CWMU antlerless permit review and recommendations, May 4, 2011
2011 CWMU antlerless permit review and recommendations, May 4, 2011
 
Mobile's Data Game: How to Play by the Rules and Win
Mobile's Data Game: How to Play by the Rules and WinMobile's Data Game: How to Play by the Rules and Win
Mobile's Data Game: How to Play by the Rules and Win
 
Getting it Right in Mobile: How to Use Mobile to Build Relationships
Getting it Right in Mobile: How to Use Mobile to Build RelationshipsGetting it Right in Mobile: How to Use Mobile to Build Relationships
Getting it Right in Mobile: How to Use Mobile to Build Relationships
 
Fall sem exam 2010 set #2
Fall sem exam 2010 set #2Fall sem exam 2010 set #2
Fall sem exam 2010 set #2
 
LevelUp
LevelUpLevelUp
LevelUp
 
【STR3 パネルトーク】
【STR3 パネルトーク】【STR3 パネルトーク】
【STR3 パネルトーク】
 
Integrating SMS Into Your Cross-Channel Messaging Strategy
Integrating SMS Into Your Cross-Channel Messaging StrategyIntegrating SMS Into Your Cross-Channel Messaging Strategy
Integrating SMS Into Your Cross-Channel Messaging Strategy
 

Similar a Join the python_side

«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
it-people
 
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013
ScalaNsk
 
PHP 5.4 - особенности перехода
PHP 5.4 - особенности переходаPHP 5.4 - особенности перехода
PHP 5.4 - особенности перехода
Roman Pronskiy
 

Similar a Join the python_side (20)

About Python
About PythonAbout Python
About Python
 
Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей.
 
Groovy jug-moscow-part 1
Groovy jug-moscow-part 1Groovy jug-moscow-part 1
Groovy jug-moscow-part 1
 
Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3
 
TT
TTTT
TT
 
Template Toolkit – зло!?
Template Toolkit – зло!?Template Toolkit – зло!?
Template Toolkit – зло!?
 
Компьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingКомпьютерная графика. Введение в Processing
Компьютерная графика. Введение в Processing
 
Принципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-StudioПринципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-Studio
 
разработка бизнес приложений (8)
разработка бизнес приложений (8)разработка бизнес приложений (8)
разработка бизнес приложений (8)
 
Функциональное программирование на F#
Функциональное программирование на F#Функциональное программирование на F#
Функциональное программирование на F#
 
Сергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглить
Сергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглитьСергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглить
Сергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглить
 
Обзор Ruby
Обзор RubyОбзор Ruby
Обзор Ruby
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
 
SPA инструменты
SPA инструментыSPA инструменты
SPA инструменты
 
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013
 
Статический анализатор кода для InterSystems Caché Object Script
Статический анализатор кода для InterSystems Caché Object ScriptСтатический анализатор кода для InterSystems Caché Object Script
Статический анализатор кода для InterSystems Caché Object Script
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
PHP 5.4 - особенности перехода
PHP 5.4 - особенности переходаPHP 5.4 - особенности перехода
PHP 5.4 - особенности перехода
 
Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!
Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!
Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!
 

Join the python_side

  • 1. Join the nice side We have Python!!!
  • 2. Устали от... • segfault-ов • логики, смешанной с представлением • получасовой компиляции • усложненного синтаксиса ?
  • 4. Классификация • Скриптовый • Интерпретируемый • Динамический • Строгий по типизации o нельзя сложить строку и число o нет неявных приведений типов • C-образный синтаксис
  • 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; работа с файлами; персистентность; многопоточность и многопроцессовость и т.д.