Рассмотрим еще один пример. Вы сразу поймете его предназначение, хотя и не сразу сможете определить результат:
>½ столовой ложки масла или маргарина;
>½ столовой ложки сливок;
>2 ½ стакана муки;
>1 чайная ложка соли;
>1 чайная ложка сахара;
>4 стакана картофельного пюре (охлажденного).
>Перед тем как добавить муку, убедитесь, что все ингредиенты охлаждены.
>Смешайте все ингредиенты.
>Тщательно замесите.
>Сделайте 20 шариков. Держите их охлажденными до следующего этапа.
>Для каждого шарика разровняйте муку на тряпочке.
>Раскатайте шарик при помощи рифленой скалки.
>Жарьте на сковороде до подрумянивания.
>Переверните и обжарьте другую сторону.
Даже если вы не готовите, вы сможете распознать кулинарный рецепт: список продуктов, за которым следуют указания по приготовлению. Но что получится в итоге? Это лефсе, норвежский деликатес, который напоминает тортилью. Полейте блюдо маслом, вареньем или чем-нибудь еще, сверните и наслаждайтесь.
Схема для вязания и рецепт имеют несколько похожих моментов:
• фиксированный словарь, состоящий из слов, аббревиатур и символов. Некоторые могут быть знакомы, другие же покрыты тайной;
• правила, описывающие, что и где можно говорить, — синтаксис;
• последовательность операций, которые должны быть выполнены по порядку;
• в некоторых случаях — повторение определенных операций (цикл), например способ приготовления каждого кусочка лефсе;
• в некоторых случаях — ссылка на другую последовательность операций (говоря компьютерными терминами, функция). Например, когда вы прочтете приведенный выше рецепт, вам может понадобиться рецепт приготовления картофельного пюре;
• предполагаемое знание контекста. Рецепт подразумевает, что вы знаете, что такое вода и как ее кипятить. Схема для вязания подразумевает, что вы умеете держать спицы в руках;
• ожидаемый результат. В наших примерах результатом будет предмет для ног и предмет для желудка. Главное — не перепутать.
Все эти идеи вы можете встретить и в компьютерных программах. Я воспользовался этими «непрограммами», чтобы показать, что программы не так страшны, как может показаться. Нужно всего лишь выучить верные слова и правила.
Теперь оставим этих дублеров и рассмотрим настоящую программу. Что она делает?
>for countdown in 5, 4, 3, 2, 1, "hey!":
>····print(countdown)
Если вы считаете, что это программа, написанная на языке программирования Python, которая выводит на экран следующее:
>5
>4
>3
>2
>1
>hey!
то вы знаете, что язык программирования Python выучить проще, чем понять рецепт или схему для вязания. К тому же вы можете тренироваться писать на языке программирования Python, сидя за удобным и безопасным столом, избегая опасностей вроде горячей воды и спиц.