===== Прикладное программирование ===== * Синтаксис языка программирования ([[base:cheat|шпаргалка]]) * Типы данных языка * Приёмы работы (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, для любознательных: [[http://sebastianraschka.com/Articles/2014_python_2_3_key_diff.html|подробный разбор различий]]. * Поддержка Python2 была прекращена в 2020 году. Динамику перехода различных библиотек можно посмотреть на [[http://www.python3statement.org/]]. * Процесс перехода на Python3 занял более 10 лет, за это время появились инструменты автоматического перевода программ Python2 → Python3 и средства позволяющие писать код совместимый с обеими версиями языка. * До сих пор существует некоторое количество программ написанных на Python2, однако их число постепенно сокращается.
===== Что еще нужно знать о версиях Python? ===== * В данном курсе мы будем рассматривать только Python 3. * Эталонная реализация языка — СPython, есть и [[https://wiki.python.org/moin/PythonImplementations|другие]]. * Последняя на сегодняшний день стабильная версия эталонной реализации — СPython 3.10. * Все версии 3.* прямо (но не обратно) совместимы, хотя различия и не велики. * CPython 3.4 — последняя версия, поддерживающая Windows XP, CPython 3.8 — последняя версия, поддерживающая Windows 7