История языка Python
Создание Python было начато Гвидо ван Россумом (Guido van Rossum) в 1991 году, когда он работал над распределенной ОС Амеба. Ему требовался расширяемый язык, который бы обеспечил поддержку системных вызовов. За основу были взяты ABC и Модула–3. В качестве названия он выбрал Python в честь комедийных серий BBC «Летающий цирк Монти–Питона», а вовсе не по названию змеи. С тех пор Python развивался при поддержке тех организаций, в которых Гвидо работал. Особенно активно язык совершенствуется в настоящее время, когда над ним работает не только команда создателей, но и целое сообщество программистов со всего мира. И все–таки последнее слово о направлении развития языка остается за Гвидо ван Россумом.
Программа на Python
Программа на языке Python может состоять из одного или нескольких модулей. Каждый модуль представляет собой текстовый файл в кодировке, совместимой с 7–битной кодировкой ASCII. Для кодировок, использующих старший бит, необходимо явно указывать название кодировки. Например, модуль, комментарии или строковые литералы которого записаны в кодировке KOI8–R, должен иметь в первой или второй строке следующую спецификацию:
# -*- coding: koi8–r -*-
Благодаря этой спецификации интерпретатор Python будет знать, как корректно переводить символы литералов Unicode–строк в Unicode. Без этой строки новые версии Python будут выдавать предупреждение на каждый модуль, в котором встречаются коды с установленным восьмым битом.
О том, как делать программу модульной, станет известно в следующих лекциях. В примерах ниже используются как фрагменты модулей, записанных в файл, так и фрагменты диалога с интерпретатором Python. Последние отличаются характерным приглашением >>>
. Символ решетка (#
) отмечает комментарий до конца строки.
Программа на Python, с точки зрения интерпретатора, состоит из логических строк. Одна логическая строка, как правило, располагается в одной физической, но длинные логические строки можно явно (с помощью обратной косой черты) или неявно (внутри скобок) разбить на несколько физических:
print a, " — очень длинная строка, которая не помещается в", \
80, "знакоместах"
Во всех примерах в основном используется «официальный» стиль оформления кода на Python в соответствии с документом «Python Style Guide», который можно найти на сайте http://python.org
Основные алгоритмические конструкции
Предполагается, что слушатели уже умеют программировать хотя бы на уровне школьной программы, и потому вполне достаточно провести параллели между алгоритмическими конструкциями и синтаксисом Python. Кроме того, Python как правило не подводит интуицию программиста (по крайней мере, науке хорошо известны типичные ловушки начинающих программистов на Python), поэтому изучать синтаксис Python предпочтительнее на примерах, а не с помощью синтаксических диаграмм или форм Бэкуса–Наура.
Последовательность операторов
Последовательные действия описываются последовательными строками программы. Стоит, правда, добавить, что в программах важны отступы, поэтому все операторы, входящие в последовательность действий, должны иметь один и тот же отступ:
a = 1
b = 2
a = a + b
b = a - b
a = a - b
print a, b
Что делает этот пример? Проверить свою догадку можно с помощью интерактивного режима интерпретатора Python.
При работе с Python в интерактивном режиме как бы вводится одна большая программа, состоящая из последовательных действий. В примере выше использованы операторы присваивания и оператор print
.
Оператор условия и выбора
Разумеется, одними только последовательными действиями в программировании не обойтись, поэтому при написании алгоритмов используется еще и ветвление:
if a > b:
c = a
else:
c = b
Этот кусок кода на Python интуитивно понятен каждому, кто помнит, что if
по–английски значит «если», а else
— «иначе». Оператор ветвления имеет в данном случае две части, операторы каждой из которых записываются с отступом вправо относительно оператора ветвления. Более общий случай — оператор выбора — можно записать с помощью следующего синтаксиса (пример вычисления знака числа):