Программа, написанная на языке программирования Python, содержит несколько специальных слов и символов: for, in, print, запятые, точки с запятой, скобки и т. д., — которые являются важной частью синтаксиса языка. Хорошая новость заключается в том, что язык программирования Python имеет более доступный и менее объемный синтаксис, чем большинство других языков программирования. Он кажется более понятным — почти как рецепт.
Вот еще одна небольшая программа, написанная на языке программирования Python, которая выбирает новостные клише из списка и выводит их на экран:
cliches = [
····"At the end of the day",
····"Having said that",
····"The fact of the matter is",
····"Be that as it may",
····"The bottom line is",
····"If you will",
····]
print(cliches[3])
Эта программа выведет четвертое клише:
Be that as it may
Списки — вроде cliches — представляют собой последовательность значений, доступ к которым осуществляется с использованием смещения от начала списка. Смещение для первого элемента списка равно 0, а для четвертого — 3.
Люди считают с единицы, поэтому может показаться странным считать с нуля. При программировании удобнее оперировать смещениями, чем позициями.
Списки широко распространены в языке программирования Python. О том, как ими пользоваться, будет рассказано в главе 3.
Далее приведена еще одна программа, которая также выводит цитату, но в этот раз цитата выбирается в зависимости от того, кто ее произнес, а не с помощью позиции в списке:
quotes = {
····"Moe": "A wise guy, huh?",
····"Larry": "Ow!",
····"Curly": "Nyuk nyuk!",
····}
stooge = "Curly"
print(stooge, "says: ", quotes[stooge])
Если вы запустите эту небольшую программу, она выведет следующее:
Curly says: Nyuk nyuk!
quotes — это словарь, коллекция уникальных ключей (в этом примере ключом является имя участника Stooge) и связанных с ними значений (в этом примере — значимая цитата участника Stooge). Используя словарь, вы можете сохранять элементы и выполнять их поиск по именам, что часто удобнее, чем работать со списком. Более подробно о словарях можно прочитать в главе 3.
В примере с клише для создания списка используются квадратные скобки ([и]), а в примере со Stooge для создания словаря — фигурные скобки ({ и }). Все это — варианты синтаксиса языка программирования Python, и в нескольких следующих главах вы увидите гораздо больше.
А теперь рассмотрим кое-что совершенно иное: в примере ниже показана программа, написанная на языке программирования Python, которая выполняет несколько более сложных задач. Не ждите, что сразу поймете, как она работает, — для этого и предназначена данная книга. Мы рассматриваем пример для того, чтобы увидеть и прочувствовать обычную нетривиальную программу, написанную на языке Python. Если вы знаете другие языки программирования, то можете сравнить их с Python прямо сейчас.
В примере ниже происходит подключение к сайту YouTube и получение информации о видеороликах, имеющих в данный момент самые высокие оценки. Если бы результатом была обычная веб-страница, заполненная текстом, отформатированным как HTML, было бы трудно получить всю необходимую информацию (я говорю об извлечении данных в разделе «Веб-сервисы и автоматизация» главы 9). Вместо этого пример получает данные, представленные в формате JSON, который предназначен для обработки компьютером. JSON, или JavaScript Object Notation, — это читабельный для человека текстовый формат, который описывает типы и значения, а также выстраивает значения в определенном порядке. Он немного похож на языки программирования и уже стал популярным способом обмена данными между разными языками программирования и системами. Вы можете прочитать о JSON больше в подразделе «JSON» раздела «Структурированные текстовые файлы» главы 8.
Программы, написанные на языке Python, могут преобразовывать текст формата JSON в структуры данных — их вы увидите в следующих двух главах, — как если бы вы написали программу, чтобы создавать их самостоятельно. В полученном от YouTube ответе данных очень много, поэтому в рамках этого примера я выведу названия лишь первых шести видеороликов. И вновь перед вами полноценная программа, которую вы можете запустить самостоятельно.
import json
from urllib.request import urlopen
url = "https://gdata.youtube.com/feeds/api/standardfeeds/top_rated?alt=json"
response = urlopen(url)
contents = response.read()
text = contents.decode('utf8')
data = json.loads(text)
for video in data['feed']['entry'][0:6]:
····print(video['title']['$t'])
Когда я запускал эту программу в последний раз, получил следующий результат:
Evolution of Dance — By Judson Laipply
Linkin Park — Numb
Potter Puppet Pals: The Mysterious Ticking Noise
"Chocolate Rain" Original Song by Tay Zonday
Charlie bit my finger — again!
The Mean Kitty Song
Эта небольшая программа, написанная на языке Python, делает многое с помощью всего лишь девяти строк. Если вы не знаете всех этих терминов, не волнуйтесь — вы познакомитесь с ними в следующих главах.
• Строка 1: импортируем весь код из стандартной библиотеки, которая называется json.
• Строка 2: импортируем только функцию urlopen из стандартной библиотеки urllib.
• Строка 3: присваиваем URL сайта YouTube переменной url.
• Строка 4: соединяемся с веб-сервером, расположенным по этому адресу, и запрашиваем определенный веб-сервис.
• Строка 5: получаем ответ и присваиваем его переменной contents.
• Строка 6: дешифруем содержимое переменной contents в текстовую строку формата JSON и присваиваем ее переменной text.
• Строка 7: преобразуем переменную text в data — структуру данных языка Python, предназначенную для работы с видео.
• Строка 8: получаем информацию для одного видеоролика единовременно в переменную video.
• Строка 9: используем двухуровневый словарь (data['feed']['entry']) и функцию slice([0:6]).
• Строка 10: используем функцию print, чтобы вывести на экран только название видеоролика.
Информация о видеоролике представляет собой различные структуры данных; все они демонстрируются в главе 3.
В предыдущем примере мы задействовали стандартные библиотечные модули (программы, включаемые в Python при установке), но в них нет ничего таинственного. Следующий фрагмент кода показывает переписанный пример, использующий внешний пакет ПО для Python, который называется requests:
import requests
url = "https://gdata.youtube.com/feeds/api/standardfeeds/top_rated?alt=json"
response = requests.get(url)
data = response.json()
for video in data['feed']['entry'][0:6]:
····print(video['title']['$t'])
Новая версия содержит всего шесть строк и, я полагаю, более читабельна для большинства людей. Я расскажу гораздо больше о requests и других авторских программах для Python в главе 5.
Python в реальном мире
Стоит ли тратить на изучение Python время и силы? Может быть, это игра в бирюльки? Язык программирования Python существует примерно с 1991 года (он появился раньше Java) и является одним из десяти самых популярных языков программирования. Людям платят деньги за то, что они пишут программы на Python, которыми мы пользуемся каждый день, — Google, YouTube, Dropbox, Netflix и Hulu. Я использовал Python для создания как поискового устройства для электронной почты, так и интернет-магазина. Python имеет репутацию высокопроизводительного языка программирования, что нравится динамично развивающимся организациям.
Вы можете найти множество приложений, написанных на Python, например:
• командную строку на мониторе или в окне терминала;
• пользовательские интерфейсы, включая сетевые;
• веб-приложения, как клиентские, так и серверные;
• бэкэнд-серверы, поддерживающие крупные популярные сайты;
• облака (серверы, управляемые сторонними организациями);
• приложения для мобильных устройств;
• приложения для встроенных устройств.
Программы, написанные