Введение#

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

  • Синтаксис языка программирования (шпаргалка)

  • Типы данных языка

  • Приёмы работы (best practice)

  • Платформа

    • стандартная библиотека (os, sys, glob, …)

    • сторонние библиотеки (numpy, matplotlib, scipy, …)

    • способ установки (pip, wheel, setup.py)

  • Средства разработки (IDE, VCS, отладчик, модульные тесты…)

  • Алгоритмы

Python#

Почему Python?#

  • Лаконичный, емкий и простой синтаксис

  • Кроссплатформенность

  • Открытое ПО

  • Богатая стандартная библиотека

  • Огромное количество доступных для загрузки библиотек, в том числе для решения научных задач

  • Огромное сообщество разработчиков

  • Простота интеграции с библиотеками написанными на C

Почему не Python?#

  • Производительность (время разработчика дороже времени компьютера)

  • Непривычный по сравнению с C/C++/C#/Java синтаксис

  • Больше ошибок времени исполнения из-за динамической типизация

  • Не всегда есть исчерпывающая документация, особенно по сторонним модулям

  • Нет IDE с поддержкой визуального создания пользовательского интерфейса

  • Сложно создавать самостоятельные приложения для Windows и Mac

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

  • Гармонизация данных

  • Научное программирование (Spyder, Jupyter, PyZo, …)

  • Вычисления и анализа данных (NumPy, SciPy, pandas, …)

  • Визуализация (matplotlib, plotly, plotnine, …)

  • Решение задач в конкретных предметных областях (ObsPy, pyGIMLi, …)

  • Построение веб-приложений (Django, Flask, …)

  • Макросы и текстовая консоль для приложений (Blender, QGis, LibreOffice, …)

  • Метапрограммирование (Keras, FEniCSx, …)

  • Прототипирование ПО

  • Утилиты для системного администрирования (Ansible, Fabric, Shinken, …)

Python2 и Python3#

До недавнего времени существовали две не вполне совместимые между собой версии языка Python: Python2 и Python3, для любознательных: подробный разбор различий.

Поддержка Python2 была прекращена в 2020 году. Динамику перехода различных библиотек можно посмотреть на http://www.python3statement.org/.

Процесс перехода на Python3 занял более 10 лет, за это время появились инструменты автоматического перевода программ Python2 → Python3 и средства позволяющие писать код совместимый с обеими версиями языка.

До сих пор существует некоторое количество программ написанных на Python2, однако их число постепенно сокращается.

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

  • В данном курсе мы будем рассматривать только Python 3 и ориентироваться на такущую актуальную версию Python 3.13.

  • Эталонная реализация языка — СPython, есть и другие.

  • Последняя на сегодняшний день стабильная версия эталонной реализации — СPython 3.10.

  • Все версии 3.* прямо (но не обратно) совместимы, хотя различия и не велики.

  • CPython 3.4 — последняя версия, поддерживающая Windows XP, CPython 3.8 — последняя версия, поддерживающая Windows 7

Источники#

Официальная документация#

Важнейшие сторонние библиотеки для научного программирования#

Важнейшие сторонние библиотеки для решения геофизических задач#

Курсы для начинающих#

Курсы для продолжающих#

Шпаргалки#

Сайты#

Книги#

Рецепты, статьи и Q&A#