Прикладное программирование

  • Синтаксис языка программирования (шпаргалка)
  • Типы данных языка
  • Приёмы работы (best practice)
  • Платформа
    • стандартная библиотека (os, sys, glob, …)
    • сторонние библиотеки (numpy, matplotlib, scipy, …)
    • способ установки (pip, https://pypi.org/, setup.py)
  • Средства разработки (IDE, VCS, отладчик, тесты…)
  • Алгоритмы

Почему Python?

  • Лаконичный, емкий и простой синтаксис
  • Кроссплатформенность
  • Открытое ПО
  • Богатая стандартная библиотека
  • Огромное количество доступных для загрузки библиотек, в том числе для решения научных задач
  • Огромное сообщество разработчиков
  • Простота интеграции с библиотеками написанными на C

Почему не Python?

  • Производительность*
  • Непривычный по сравнению с C/C++/C#/Java синтаксис
  • Больше ошибок времени исполнения из-за динамической типизация
  • Не всегда есть исчерпывающая документация, особенно по сторонним модулям
  • Нет IDE с поддержкой визуального создания пользовательского интерфейса
  • Сложно создавать самостоятельные приложения для Windows и Mac

*Время разработчика дороже времени компьютера*

Для чего применяют Python?

  • Гармонизация данных
  • Научное программирование (Spyder, PyZo, Jupyter,…)
  • Вычисления и анализа данных (NumPy, SciPy, Pandas, …)
  • Решение задач в конкретных предметных областях (ObsPy, AstroPy, …)
  • Построение веб-приложений (Django, Flask, …)
  • Макросы и текстовая консоль для приложений (Blender, QGis, LibreOffice, …)
  • Метапрограммирование (Keras, FEniCS, …)
  • Прототипирование ПО
  • Утилиты для системного администрирования (Ansible, Fabric, Shinken, …)

Python2 и Python3

  • До недавнего времени существовали две не вполне совместимые между собой версии языка Python: Python2 и Python3, для любознательных: подробный разбор различий.
  • Поддержка Python2 была прекращена в 2020 году. Динамику перехода различных библиотек можно посмотреть на http://www.python3statement.org/.
  • Процесс перехода на Python3 занял более 10 лет, за это время появились инструменты автоматического перевода программ Python2 → Python3 и средства позволяющие писать код совместимый с обеими версиями языка.
  • До сих пор существует некоторое количество программ написанных на Python2, однако их число постепенно сокращается.

Что еще нужно знать о версиях Python?

  • В данном курсе мы будем рассматривать только Python 3.
  • Эталонная реализация языка — СPython, есть и другие.
  • Последняя на сегодняшний день стабильная версия эталонной реализации — СPython 3.10.
  • Все версии 3.* прямо (но не обратно) совместимы, хотя различия и не велики.
  • CPython 3.4 — последняя версия, поддерживающая Windows XP, CPython 3.8 — последняя версия, поддерживающая Windows 7