
Содержание
Ввеведние
Этот цикл статей посвящен языку программирования (далее ЯП) - Python. Чтобы не тратить много времени сразу начнем с преимуществ и недостатков Python (для тех, кому интересна история создания и другие исторические моменты более подробно можно прочитать здесь).
Преимущества:
- Легкий и быстрый в изучении (низкий порог входа);
- Поддерживается множеством платформ и операционных систем;
- Написаный код лаконичный и понятный;
- Огромное сообщество поддержки.
Недостатки:
- Недостаточно эффективная работа с многоядерными и многопроцессорными вычислительными системами;
- Низкая скорость выполнения;
- Динамическая типизация (с ростом кодовой базы, следить за типами передаваемых данных довольно сложно).
Где применяется:
- Разработка веб-приложений (Django, Flask);
- Анализ данных и машинное обучение (пакеты scipy, scikit-learn, pandas, numpy признанные мировым ученым сообществом);
- Введение в программирование (pygame, turtle хорошо помогают мотивировать детей начинать кодить);
- Быстрое прототипирование идей в бизнесе за счёт обилия готовых библиотек, низкого порога вхождения в язык и высокой продуктивности программистов, пишущих на Python;
- Написание скриптов (сценариев) для автоматизации задач. Python по-умолчанию поставляется со всеми дистрибутивами unix-like систем и является отличной заменой Bash во всех смыслах.
После прочтения преимуществ и недостатков Python Вы можете точно для себя решить - подходит Вам этот ЯП или нет.
Все распространенные операционные системы (Windows, Linux, OS X) поддерживают Python (по умолчанию или необходимо скачать установочный файл с официального сайта). В этой и последующих статьях будут за основу взяты Linux-системы.
Установка
Скорее всего интерпретатор Python уже установлен, чтобы проверить точно, необходимо ввести в консоли следующее:
python
или
python3
Отличия между python2 и python3 можно почитать тут.
В этом цикле статей будет рассматриваться 3 версия Python.
Если в консоли было выведено примерно вот такое сообщение:
No command 'python3' found, did you mean: Command 'python' from package 'python-minimal' (main) Command 'python' from package 'python3' (main) Command 'python2' from package 'python-minimal' (main)
Значит Вам необходимо установить пакет python3:
sudo apt-get install python3
В противном случае, запустится интерпретатор Python, будет выглядить примерно вот так:
Python 3.4.0 (default, Apr 11 2014, 13:05:11) [GCC 4.8.2] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
Так же один из способов, чтобы узнать какая версия Python установлена:
python3 -V
В Linux по умолчанию нет предустановленного IDLE для Python. Но его устанавливать не обязательно. Программы можно писать в любом текстовом редакторе (sublime text, atom, gedit, vim, nano, etc).
Первая программа
Попробуем написать первую программу на Python - Hello, world!.
Что нам для этого необходимо?
Открыть консоль интерпретатора (для первого раза рассмотрим именно такой способ):
python3
и в ней написать следующую строчку кода и нажать ENTER:
print("Hello, world!")
Вывод программы должен быть вот такой:
Hello, world!
Поздравляю! Вы написали свою первую программу на Python.
Разберем подробнее что же произошло.
print - это зарезервированое имя в Python, которое из себя представляет функцию, которая принимает выражения для последующего вывода на экран.
Немного теории:
Функция - это блок организованного, многократно используемоего кода, который используется для выполнения конкретного задания. Функции обеспечивают лучшую модульность приложения и значительно повышают уровень повторного использования кода.
Выражение - это команда, выполняющее законченое действие. Таким действием может быть вычисление некого значения, создание какой-либо структуры данных, команда, управляющая выполнением программного кода, вызов функции или метода или что-то иное.
В нашем примере:
print() - функция "Hello, world!" - выражение, которое необходимо вывести на экран
Но, так как интерактивный режим, не будет являться основным, Вы, в основном, будете сохранять программный код в файле и запускать уже файл. Далее рассмотрим как создать python-скрипт.
Запуск скрипта
Есть несколько способов создать Python файл (скрипт).
- Зайти в любой текстовый редактор и выбрать создать новый файл и потом сохранить его с любым именем и расширением .py!
- Создать через консоль командой touch файл с любым именем и расширением .py и потом открыть уже созданный файл в любом текстовом редакторе.
Второй способ будет выглядить примерно вот так:
touch test.py
С помощью этой команды создаем файл с именем test и расширением .py.
После того как мы создали Python файл можем его открыть и добавить в него код введенный ранее в интерактивном режиме.
print("Hello, world!")
Рассмотрим способы запуска этого скрипта (для примера будем считать что был создан скрипт test.py):
- Явно передавать интерпретатору скрипт, как аргумент командной строки
python3 test.py
На экране будет выведено - Hello, world!
- Первым дело, в самое начало файла необходимо добавить следующую строку кода:
#!/usr/bin/env python3
Это строка называется шебанг! Она сообщает системе, что для запуска программы необходимо интерпретатор версии python3. Т.е. утилита env устанавливает необходимое окружение.
Так же есть второй вариант шебанга:
#!/usr/bin/python3
Недостатки такого способа в том, что не всегда интерпретатор находится по такому пути, а утилита env практически во всех системах имеет одинаковое месторасположение.
Теперь полное тело скрипта выглядит вот так:
#!/usr/bin/env python3 print("Hello world!")
И в заключение необходимо сделать скрипт исполняемым, по умолчанию, в Linux - все файлы не исполняемые. Это можно сделать следующей командой:
chmod +x test.py
При выполнение этой команды, вы должны находится в директории, где находится скрипт, иначе необходимо указывать полный путь к скрипту:
chmod +x /path/to/test.py
Теперь можно запускать Ваш скрипт.
./test.py
Вывод такой же, как и в первом случае - Hello, world!
Дзен Python
Разработчики языка Python придерживаются определённой философии программирования, называемой «The Zen of Python» («Дзен Питона», или «Дзен Пайтона»). Её текст выдаётся интерпретатором Python по команде import this (работает один раз за сессию). Автором этой философии считается Тим Петерс (Tim Peters).
import this
Текст философии:
Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one — and preferably only one — obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than «right» now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea — let's do more of those!
Перевод:
Красивое лучше уродливого. Явное лучше неявного. Простое лучше сложного. Сложное лучше усложнённого. Плоское лучше вложенного. Разрежённое лучше плотного. Удобочитаемость важна. Частные случаи не настолько существенны, чтобы нарушать правила. Однако практичность важнее чистоты. Ошибки никогда не должны замалчиваться. За исключением замалчивания, которое задано явно. Перед лицом двусмысленности, откажитесь от искушения угадать. Должен существовать один — и, желательно, только один — очевидный способ сделать это. Хотя он может быть с первого взгляда не очевиден, если ты не голландец. Сейчас лучше, чем никогда. Однако, никогда чаще лучше, чем прямо сейчас. Если реализацию сложно объяснить — это плохая идея. Если реализацию легко объяснить — это может быть хорошая идея. Пространства имён — великолепная идея, их должно быть много!