Компьютер делает ровно то, что написано

Понимаем, что компьютер выполняет ровно то, что написано, и учимся читать программу как «мысли» компьютера.

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

Компьютер всё понимает буквально

Вернёмся к нашему роботу. Главный его секрет: он делает ровно то, что написано. Не то, что ты хотел, а то, что написал. Поэтому, чтобы стать хорошим программистом, надо научиться читать программу глазами компьютера. Это называется «выполнить программу в уме» — пройти по строчкам и представить, что получится.

Давай потренируемся. Вот программа:

print("3")
print("2")
print("1")
print("Поехали!")

Прочитай её сверху вниз, как компьютер. Первая строчка напечатает «3», вторая — «2», третья — «1», четвёртая — «Поехали!». Получился обратный отсчёт перед стартом ракеты! Проверь себя — запусти:

Вывод:

3
2
1
Поехали!

Получилось так, как ты прочитал? Отлично — значит, ты уже умеешь думать как компьютер!

Машина не исправляет за тебя

А теперь хитрый момент. Что напечатает эта программа?

print("1")
print("3")
print("2")

Вывод:

1
3
2

Компьютер напечатал «1, 3, 2» — хотя по-человечески «правильно» было бы «1, 2, 3». Но машина не догадывается, что ты хотел по порядку! Она печатает ровно то, что написано, в том порядке, в каком написано. Если хочешь «1, 2, 3» — расставь команды в этом порядке сам.

Это не вредность компьютера. Наоборот — это его честность. Он всегда делает одно и то же, его поведение можно предсказать. А раз можно предсказать — значит, можно научиться им управлять.

Что такое «баг»

Когда программа делает не то, что ты задумал, говорят, что в ней баг (по-английски «жучок»). Это нормально! Баги бывают у всех программистов в мире, даже у самых лучших. Найти и исправить баг — это называется отладка, и это интересная игра-головоломка, а не повод расстраиваться.

Чтобы найти баг, программист делает то же, что и мы сейчас: читает программу глазами компьютера, строчка за строчкой, и ищет, где написано не то.

Попробуй сам

В этой программе перепутан порядок строк рецепта. Прочитай её и почини: переставь строки так, чтобы шаги шли по-настоящему по порядку (сначала достать хлеб, потом намазать, потом съесть).

print("Шаг 1: достать хлеб")
print("Шаг 2: намазать масло")
print("Шаг 3: съесть бутерброд")

Вывод:

Шаг 1: достать хлеб
Шаг 2: намазать масло
Шаг 3: съесть бутерброд

Частые ошибки

  • Ждать, что компьютер «поймёт». Он не поймёт — он выполнит буквально. Это даже хорошо: значит, всё под твоим контролем.
  • Расстраиваться из-за бага. Баг — это не провал, а часть работы. Даже у создателей твоих любимых игр их тысячи. Лови баг как Покемона!

Что мы узнали

  • Компьютер делает ровно то, что написано, и в том порядке, в каком написано.
  • Полезно читать программу глазами компьютера — это помогает понять, что получится.
  • Баг — это ошибка в программе; искать и чинить баги (отладка) — нормальная часть работы.
Проверьте себя
1. Что напечатает программа: print("1"), затем print("3"), затем print("2")?
A1, 2, 3 — компьютер исправит порядок
B3, 2, 1
C1, 3, 2 — ровно как написано
DНичего
2. Что такое баг?
AНазвание команды в Python
BОчень быстрая программа
CКнопка запуска
DОшибка в программе, когда она делает не то, что задумано
3. Почему хорошо, что компьютер всё выполняет буквально?
AПотому что его поведение можно предсказать и им можно управлять
BПотому что так программа работает медленнее
CПотому что он умнее человека
DЭто плохо, а не хорошо