Алгоритмы и команды
Прежде чем учить программу выбирать между вариантами, разберёмся, что вообще значит «выполнять команды» — и откуда берётся сам термин «алгоритм».
До сих пор наши программы выполняли одни и те же команды в одном и том же порядке при каждом запуске. Прежде чем научить программу выбирать, что делать дальше, разберёмся, что вообще значит «выполнять команды» — и договоримся об одном важном инструменте: языке блок-схем.
Форма блока — не украшение
Каждая фигура на блок-схеме имеет строгий смысл: она подсказывает, какого рода шаг алгоритма перед вами. Мы будем пользоваться этим языком на протяжении всей главы:
терминатор
процесс / команда
параллелограмм
решение (ромб)
Что такое алгоритм
Алгоритм — это понятная последовательность действий, которая приводит нас от исходной ситуации к нужному результату. Мы пользуемся алгоритмами каждый день, даже не называя их так:
- Взять кружку.
- Положить чай.
- Вскипятить воду.
- Налить воду.
- Подождать.
- Выпить чай.
Каждый отдельный шаг — это команда (инструкция): указание компьютеру (или человеку) выполнить конкретное действие. Весь упорядоченный набор шагов — это и есть алгоритм.
Команда и выражение — это разные вещи
Мы уже пользовались командами с самой первой программы в главе 1 — только не называли их так:
print("Привет")
name = input("Как вас зовут? ")
score = 10
print(...)— команда «показать что-то на экране».input(...)— команда «запросить информацию у пользователя».score = 10— команда «связать имя с значением» (присваивание).
2 + 2 само по себе ничего не «делает» — это выражение: оно вычисляется и производит значение (4). А вот print(2 + 2) — уже команда: она берёт значение выражения и что-то с ним делает (показывает на экране). Формальное различие пока не обязательно запоминать дословно — но не стоит путать «вычислить значение» и «выполнить действие».Программа — это последовательность команд
Рассмотрим простую программу и проследим, как Python выполняет её команда за командой.
Обратите внимание: input() нарисован как ВВОД, а
print() — как ВЫВОД, разными фигурами, а не одинаковыми
прямоугольниками:
print("Старт")
name = input("Как вас зовут? ")
print("Привет,", name)
print("Конец")
Обычно Python выполняет команды строго сверху вниз, одну за другой. Это называется последовательным (или линейным) выполнением: каждый следующий шаг идёт сразу после предыдущего, без пропусков и без выбора.