====== Владеем программированием на языке ======
* Знаем синтаксис и стандартную библиотеку
* Знаем принятые приемы работы (best practice)
* Умеем использовать инфраструктуру сторонних библиотек
* Владеем соответствующими средства разработки
====== Python как платформа ======
Python — интерпретируемый язык программирования. Программа на нем всегда (почти) распространяется в виде исходных кодов и называется скриптом. Файлы скриптов, как правило, имеет расширение ''.py''.
Дистрибутив Python включает:
* Собственно интерпретатор
* Стандартную библиотеку («батарейки в комплект входят»)
* Менеджер пакетов (pip)
Интерпретатор для Windows можно поставить из магазина приложений или скачать в составе сборок, таких как Anaconda и Spyder IDE.
Я предполагаю дальнейшую работу с использованием IDE Spyder, скачать и установить среду можно по ссылке: [[https://docs.spyder-ide.org/current/installation.html#downloading-and-installing]]
===== Интерактивный режим =====
Если запустить интерпретатор Python непосредственно, то он запуститься, как консольное приложение в интерактивном режиме:
> python3
Python 3.5.3 (default, Jan 19 2017, 14:11:04)
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Для выхода можно использовать ''Ctrl-Z'' + Ввод (Windows) или ''Ctrl-D'' (все остальные).
Тут можно вводить команды по одной и радоваться результату:
>>> a = 42
>>> b = a*2
>>> b+a
126
===== В какой программе писать на Python? =====
Не надо работать у обычном блокноте и тем более в текстовом процессоре, нужен редактор который умеет (как минимум):
* Подсветку синтаксиса Python;
* Автодополнение кода на Python;
* Режим «использовать пробелы вместо табов»;
* Режим табличного / многокурсорного редактирования.
==== Конкретные программы ====
Среды для научного программирования:
* [[https://www.spyder-ide.org/|Spyder]] — я буду ориентироваться на него в данном курсе
* [[https://pyzo.org/|Pyzo]] — умеет меньше, чем Spyder, но существенно быстрее
* [[https://jupyter.org|Jupyter]]
Среды разработки общего назначения:
* [[https://www.jetbrains.com/pycharm/|PyCharm]]
* [[https://code.visualstudio.com/|VSCode]]
Текстовые редакторы для исходного кода:
* [[https://notepad-plus-plus.org/|Notepad++]]
* [[https://kate-editor.org/|Kate]]
* [[https://atom.io/|Atom]]
* [[https://www.sublimetext.com/|Sublimetext]]
===== Расширения файлов =====
* ''*.py'' — скрипт на Python. При правильной настройке в Windows файлы с этим расширением будут по умолчанию запускаться в Python.
* ''*.pyw'' — скрипт на Python. В отличии от ''*.py'' в Windows не будет открываться консоль при запуске файлов с этим расширением. Используются для создания приложений с графическим интерфейсом.
* ''%%__pycache__%%'' — папка, генерируемая Python в процессе работы (можно удалять)
В Windows для запуска ''.py'' нужно настроить их открытие в программе python, а в Linux и Mac скрипты на Python запускаются, как обычные приложения при помощи [[https://ru.wikipedia.org/wiki/%D0%A8%D0%B5%D0%B1%D0%B0%D0%BD%D0%B3_(Unix)|шебанга]].
Собрать отдельный исполняемый модуль для Windows (''.exe'') из Python программы можно, но это требует специальных инструментов и, по сути, означает, что интерпретатор, используемые библиотеки и собственно скрипт будут объединены в один (очень большой и сравнительно медленно запускающийся) исполняемый файл.