Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python 101

Python 101

Python 101 - short introduction into Python

Volodymyr Hotsyk

September 30, 2014
Tweet

More Decks by Volodymyr Hotsyk

Other Decks in Programming

Transcript

  1. План 1. Что такое Python 2. История развития языка 3.

    Использование Python 4. Текущее состояние и будущее Python 5. Короткое вступление в веб-программирование 6. Основные инструменты создания веб-приложений с Python 7. Короткое вступление в Django 8. Создание простого интерактивного сайта с Python и Django 9. Короткое вступление в системы контроля версий и тестирование приложений 10. Рекомендации по дальнейшему изучению
  2. Что такое Python • Высокоуровневый • Интерпретируемый • Open Source

    • Динамическая типизация • Автоматическое управление памятью • Все является объектом • www.python.org
  3. “Python is a programming language that lets you work more

    quickly and integrate your systems more effectively. You can learn to use Python and see almost immediate gains in productivity and lower maintenance cost.” –http://python.org/
  4. Главные преимущества • Ориентирован на повышение производительности разработчика и на

    читаемость кода • Компактный • Портируемый • Легко расширяемый с помощью C\C++ • Низкий порог входа
  5. Влияние других языков • ABC — отступы для группировки операторов,

    высокоуровневые структуры данных (map) • Modula-3 — пакеты, модули, использование else совместно с try и except, именованные аргументы функций • С, C++ — некоторые синтаксические конструкции • Smalltalk — объектно-ориентированное программирование; • Lisp — отдельные черты функционального программирования (lambda, map, reduce, filter и другие); • Fortran — срезы массивов, комплексная арифметика; • Miranda — списочные выражения; • Java — модули logging, unittest, threading, xml.sax стандартной библиотеки, совместное использование finally и except при обработке исключений, использование @ для декораторов; • Icon — генераторы.
  6. История 1.0 • Релиз 1.0 вышел в январе 1994 года

    • Поддерживал средства функционального программирования: лямбда-исчисление, карты, фильтры и свёртка списка. • С 1995 Гвидо продолжал работу над над Python- ом в корпорации национальных исследовательских инициатив (CNRI) в городе Рестон, штат Вирджиния
  7. PSF и 2.0 • Python 2.0 - 16 октября 2000

    года • появилась поддержка списков, сборщик мусора, поддержка unicode • Создана лицензия Python Software Foundation License • В 2001 году создана Python Software Foundation, которой принадлежит весь код и техническая документация
  8. PyCon US • В 2003 году в Washington, D.C. состоялась

    первая конференция PyCon US, которая собрала 200 участников • Конференции 2013 и 2014 годов, в Santa Clara, CA и Montreal, Canada собирали по 2500 участников
  9. International • Europe (EuroPython) (c 2002 года) • New Zealand

    (Kiwi PyCon) • Singapore (PyCon Asia Pacific) • Argentina (Pycon AR) • Australia (Pycon AU) • Bangladesh (PyCon Dhaka) • Brazil (PythonBrasil) • Canada (PyCon Canada) • China (Pycon China) • Germany (PyCon DE) • Finland (PyCon Finland) • France (PyCon FR) • India (PyCon India) • Ireland (PyCon Ireland) • Italy (PyCon Italia) • Japan (PyCon Japan) • Philippines (PyCon Philippines) • Poland (PyCon PL) • South Africa (PyCon ZA) • Taiwan (PyCon Taiwan) • United Kingdom (PyCon UK) • Ukraine (PyCon Ukraine) • Venezuela (PyConVe)
  10. SciPy, PyData • SciPy • SciPy.in • SciPy Argentina •

    EuroSciPy • PyData Santa Clara, London, Berlin
  11. Python 3.0 • Python 3.0 - 3 декабря 2008 •

    Python 3.1 - 27 июня 2009 • Python 3.2 - 20 февраля 2011 • Python 3.3 - 29 сентября 2012 • Python 3.4 - 16 марта 2014
  12. Философия • Красивое лучше уродливого. • Явное лучше неявного. •

    Простое лучше сложного. • Сложное лучше усложнённого. • Плоское лучше вложенного. • Разрежённое лучше плотного. • Удобочитаемость важна. • Частные случаи не настолько • существенны, чтобы нарушать правила. • Однако практичность важнее чистоты. • Ошибки никогда не должны замалчиваться. • За исключением замалчивания, которое задано явно. • В случае неоднозначности сопротивляйтесь искушению угадать. • Должен существовать один — и, желательно, только один — очевидный способ сделать это. • Хотя он может быть с первого взгляда не очевиден, если ты не голландец. • Сейчас лучше, чем никогда. • Однако, никогда чаще лучше, чем прямо сейчас. • Если реализацию сложно объяснить — это плохая идея. • Если реализацию легко объяснить— это может быть хорошая идея. • Пространства имён — прекрасная идея, давайте делать их больше!
  13. Философия и изменения 3.х • Удаления дупликатов для соотвествия принципу

    "There should be one— and preferably only one — obvious way to do it". • Переделана работа со строками, юникодом • Более активное внедрение принципов функционального программирования • Асинхронность
  14. GIL • GIL - Python Global Interpreter Lock • Python

    потоки - родные потоки (POSIX потоки на Unix) • Может быть только один выполняемый поток в одну единицу времени
  15. Использование Python • DevOps • Веб • Machine learning •

    UI • GUI • Mobile • Data processing • Data bases • Games
  16. Текущее состояние • Две активные версии - 2.7+ и 3.4+

    • Красный - только 2.x, зеленый - 2.x и 3.x 2012 2014
  17. Короткое вступление в Django • Начало работы - 2003 (Adrian

    Holovaty и Simon Willison) • Июль 2005 - выпущен под лицензией BSD • Июнь 2008 - Django Software Foundation • Текущая версия 1.6, готовится релиз 1.7
  18. Django MVC • MVC - Model - View - Controller

    • MTV - Model - Template - View
  19. Django ORM class ProposalSection(models.Model): section = models.OneToOneField(Section) start = models.DateTimeField(null=True,

    blank=True) end = models.DateTimeField(null=True, blank=True) closed = models.NullBooleanField() published = models.NullBooleanField()
  20. Системы контроля версий и тестирование приложений • Что такое Системы

    контроля версий и зачем они нужны • Mercurial, GIT, Bazaar • Bitbucket, Github • TDD, pytest, nose
  21. Рекомендации по дальнейшему изучению • Learn Python The Hard Way

    (http:// learnpythonthehardway.org/) • The Hitchhiker’s Guide to Python! (http:// docs.python-guide.org/en/latest/) • Django tutorial (https://docs.djangoproject.com/en/ 1.6/intro/tutorial01/)
  22. Python-сообщество в Украине • PyCon Ukraine - http://ua.pycon.org • Kyiv.py

    • Kharkiv.py • Lviv.py • Odessa.py • http://meetup.com/uapycon/