Краткая историческая справка

Создателем языка программирования Python является голландец Гвидо ван Россум, и он представил его в 1991 году.

Название Python (или Питон) было вдохновлено вовсе не змеей, а популярным телесериалом.

Разработанный Россумом язык был опубликован в Интернете, и другие программисты начали вносить свой вклад в его совершенствование.

Сегодня Python активно развивается с постоянными обновлениями версий. У него есть две актуальные ветки: Python 2.x и Python 3.x. Здесь "x" обозначает конкретные версии. Существует небольшая разница между вторым и третьим Python. В данном курсе мы сосредоточимся на Python 3.x.

Официальная поддержка языка осуществляется на сайте python.org.

Основные особенности языка

Python является интерпретируемым языком программирования. Это значит, что код преобразуется в машинный по мере его исполнения интерпретатором.

Python славится понятным синтаксисом. Код на этом языке легче для восприятия, так как в нем редко используются дополнительные синтаксические элементы, такие как скобки или точки с запятыми. Вместо этого пользователь следует установкам языка, которые требуют соблюдения отступов для обозначения вложенных конструкций. Аккуратный код с меньшим количеством отвлекающих деталей проще читать и понимать.

Python — это универсальный язык программирования, применяемый в разных областях. Его основная парадигма — объектно-ориентированное программирование. Однако в текущем курсе мы только упомянем о концепции объектов и сосредоточимся на изучении структурного программирования, которое является базой. Без понимания типов данных, ветвлений, циклов и функций изучение более сложных парадигм не имеет смысла.

Интерпретаторы Python свободно распространяются по лицензии, схожей с GNU General Public License.

Дзен Питона

Команда import this в интерпретаторе Python выведет на экран так называемый "Дзен Питона". Этот набор коротких утверждений иллюстрирует философию и принципы языка. Полное их осознание придет с практическим опытом программирования на Python.

  • 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! Пространства имён — прекрасная идея, давайте делать их больше!

Как писать программы на Python

Интерактивный режим

Интерпретатор Python может выполнять команды одну за другой в построчном режиме. Вы пишете команду, нажимаете Enter, и интерпретатор сразу выполняет её, позволяя видеть результат.

Это особенно полезно для изучения особенностей языка или тестирования небольших фрагментов кода. В отличие от компилируемых языков, где вам нужно создать файл с кодом, передать его в компилятор, получить скомпилированный файл и только потом выполнить его, в интерактивном режиме все значительно проще. Хотя в случае с компилируемыми языками, среды разработки автоматизируют все эти действия, упрощая процесс.

В операционных системах на основе ядра Linux программирование на Python может выполняться в интерактивном режиме через приложение «Терминал» и оболочку Bash. Для запуска интерпретатора просто введите команду python.

Запуск интерпретатора Python

Возможно, у вас запустится интерпретатор Python 2, как это видно из первой строки вывода. В примере показана версия 2.7.12, где число «2» означает, что это версия Python 2. Последняя строка с символами (>>>) ожидает ввода команды. Поскольку в этом курсе используется Python 3, мы выходим из интерпретатора с помощью команды exit (exit – выход), и вводим команду python3 для запуска нужной версии.

Запуск третьей версии Питона

Учтите, что пакет Python3 может не быть установлен на вашей системе, поэтому его, возможно, потребуется установить отдельно.

На Windows интерпретатор можно скачать с официального сайта Python здесь. После установки вы сможете запускать его через значок, без необходимости использования командной оболочки.

Поскольку мы еще не изучали команды языка, одним из способов тестирования может служить его использование в качестве калькулятора.

Использование Питона в качестве калькулятора

Создание скриптов

Хотя интерактивный режим удобен, часто требуется сохранить код для будущего использования. В этом случае вы создаете файлы, которые интерпретатор будет запускать. Такие файлы имеют расширение .py.

Для написания кода в Python существует множество сред разработки, таких как PyCharm. В начале может подойти любой текстовый редактор с подсветкой, например, Geany.

Программирование на Python в Geany

Создавая и сохраняя файл с кодом, вы можете запустить его через терминал, указав сначала интерпретатор (например, python3), затем имя файла. Если файл не в текущем каталоге, нужно или задать полный путь, или перейти в нужный каталог с помощью команды cd оболочки Bash.

Выполнение скрипта на Python через терминал

Если установить дополнительный встроенный терминал в Geany (sudo apt-get install libvte9), работа станет еще проще.

Терминал в Geany и запуск скрипта на Python

В редакторе можно просто нажать F5, что отправит файл на исполнение (терминал откроется автоматически, и после завершения программы и нажатия Enter закроется).

На Windows вы можете подготовить файл в среде IDLE. В меню выберите команду File → New Window (Crtl + N), что откроет новое окно для написания кода. Чтобы включить подсветку синтаксиса, сохраните файл с расширением .py. После написания кода вновь сохраните файл. Для выполнения скрипта выберите команду Run → Run Module (F5). Результат работы программы будет выведен в окно интерактивного режима.

Практическая работа

  1. Откройте интерпретатор Python в интерактивном режиме и выполните несколько команд, например, арифметические операции.
  2. Создайте файл с кодом и передайте его на исполнение интерпретатору. Обратите внимание: просто записав арифметику, вы не увидите вывода. Это отличие от интерактивного режима. Чтобы увидеть результат, используйте функцию print() для вывода.

Вопросы для самопроверки:

  1. Кто является создателем языка программирования Python?
  2. Какие две актуальные ветки Python существуют сегодня?
  3. Какие отличия существуют между интерактивным режимом и созданием скриптов в Python?
  4. Что необходимо сделать, если при запуске интерпретатора в Linux открывается версия Python 2, но вы хотите использовать Python 3?
  5. Каким образом можно запустить файл с кодом Python через терминал?

Программа курса:

  1. Описание курса
  2. Эволюция и основы языков программирования

    История программирования в кратком и понятном изложении. Что такое машинный язык, почему появились ассемблеры, языки высокого уровня и объектно-ориентированные. Зачем нужен транслятор, и почему он может быть либо компилятором, либо интерпретатором.

  3. Знакомство с основами Python

    Особенности языка Python, работа в интерактивном режиме и подготовка файлов с исходным кодом.

  4. Типы данных и переменные в Python

    Базовые типы данных в Python: целое, вещественное числа, строки. Изменение типа данных с помощью встроенных функций. Понятие об операциях и переменных. Присваивание значения переменной.

  5. Ввод и вывод данных с Python функциями

    Для вывода на экран в Python 3.x используется функция print(). Вывод может быть предварительно отформатирован. Для ввода данных с клавиатуры используется функция input(), которая возвращает в программу строку.

  6. Логические выражения и операторы в Python

    Логические выражения. Логические операторы языка Python: == (равно), != (не равно), (больше), = (больше или равно), and (логическое И), or (логическое ИЛИ), not (отрицание).

  7. Ветвление и условные операторы в Python

    Управление потоком программы с помощью операторов if-else. Создание логических ветвлений, обработка условий и выполнение разных блоков кода в Python.

  8. Изучите обработку ошибок и исключений в Python

    Общее представление об ошибках и исключениях в языке программирования Python. SyntaxError, NameError, TypeError, ValueError, ZeroDivisionError. Обработка исключений с помощью инструкции try-except.

  9. Множественное ветвление с if-elif-else в Python

    Оператор множественного ветвления языка Python позволяет организовать более двух веток выполнения программы без необходимости вложения условных операторов друг в друга. Конструкция включает одну ветку if, произвольное количество elif и необязательную ветку else.

  10. Цикл while и его применение в Python

    С помощью циклов в программировании организуется многократное следующее друг за другом выполнение одних и тех же участков кода. Бывают циклы с условием и со счетчиком. К первым относится цикл while, или цикл "пока".

  11. Изучите функции и их применение в Python

    Функции - важный элемент структурного программирования. Они позволяют обособить участок кода, выполняющий определенную задачу. В дальнейшем к нему можно обращаться из разных мест программы по имени, которым он назван. В языке Python функции определяются с помощью оператора def.

  12. Локальные и глобальные переменные в Python

    В программировании важное значение имеет представление о локальных и глобальных переменных. Локальные переменные существуют внутри функций и не доступны за ее пределами. Глобальные переменные видны во всей программе.

  13. Оператор return и возврат значений в Python

    С помощью оператора return можно вернуть значение из тела функции в основную программу. В языке программирования Python можно вернуть несколько значений, перечислив их через запятую после оператора return. Также в функции может быть несколько return, но всегда выполняется только один из них.

  14. Параметры и аргументы функций в Python

    Если функция имеет параметры, то при вызове в нее можно передавать данные в виде аргументов-значений или аргументов-ссылок. Параметры перечисляются в заголовке функции в скобках после имени, представляют собой локальные переменные. В Python тип параметров не указывается, хотя в других языках это может быть обязательным требованием.

  15. Встроенные функции Python для работы

    Язык программирования Python включает множество встроенных функций. В предыдущих уроках мы использовали такие функции как print() и input(), а также функции преобразования типов данных. В этом уроке рассматриваются встроенные функции для работы с символами и числами.

  16. Использование модулей в Python

    Использование модулей в программировании позволяет изолировать код, выполняющий частные задачи, в отдельные файлы. После чего обращаться к нему из разных программ. Создание модулей - следующий шаг после функций, когда участок кода обособляется внутри одного файла-программы. Для языка Python есть множество встроенных и сторонних модулей.

  17. Генерация псевдослучайных чисел в Python

    Для генерации псевдослучайных чисел в языке программирования Python используются функции модуля random. Функция random() генерирует вещественное число от 0 до 1. Функции randint() и randrange() производят целые псевдослучайные числа в указанных диапазонах.

  18. Изучение списков в Python - основы и операции

    Списки в Python - это аналог массивов в других языках программирования. Однако список может содержать элементы разных типов. В терминологии Python список - это изменяемая упорядоченная структура данных. Можно заменять его элементы, добавлять и удалять их, брать срезы. В язык встроены методы для работы со списками.

  19. Изучение цикла for в Python

    Цикл for в языке программирования Python предназначен для перебора элементов структур данных (списков, словарей, кортежей, множеств) и многих других объектов. Это не цикл со счетчиком, каковым является for во многих других языках. Нередко цикл for используется совместно с функцией range(), генерирующей объекты-диапазоны.

  20. Строки в Python - методы и срезы

    В Python строки - это неизменяемые последовательности символов или подстрок. Из них, так же как из списков, можно извлекать отдельные символы с помощью индексов или подстроки с помощью взятия срезов. В языке Python есть множество встроенных строковых методов, позволяющих упростить обработку строк.

  21. Кортежи - неизменяемые структуры данных

    Кортежи в Python - это неизменяемые структуры данных, состоящие из элементов одного или разных типов. Кортежи подобны спискам и обычно используются для защиты последних от изменений. Преобразование одного в другой выполняется с помощью встроенных функций tuple() и list().

  22. Словари в Python - работа с ключами и значениями

    Словарь в Python - это изменяемая неупорядоченная структура данных, элементами которой являются пары "ключ:значение". В словари можно добавлять и удалять элементы, изменять значения ключей. В Python словари имеют ряд методов, упрощающих работу с ними.

  23. Работа с файлами в Python

    В языке программирования Python открытие файлов выполняется с помощью функции open(), которой передается два аргумента - имя файла и режим. Файл может быть открыт в режиме чтения, записи, добавления. Также может быть указан тип файла - текстовый или бинарный. Для файлов есть ряд встроенных методов чтения, записи и др.