Компьютер делает ровно то, что написано
Понимаем, что компьютер выполняет ровно то, что написано, и учимся читать программу как «мысли» компьютера.
Выполнить программу — значит пройти по командам сверху вниз и сделать ровно то, что в них написано, ничего не добавляя от себя.
Компьютер всё понимает буквально
Вернёмся к нашему роботу. Главный его секрет: он делает ровно то, что написано. Не то, что ты хотел, а то, что написал. Поэтому, чтобы стать хорошим программистом, надо научиться читать программу глазами компьютера. Это называется «выполнить программу в уме» — пройти по строчкам и представить, что получится.
Давай потренируемся. Вот программа:
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: съесть бутерброд
Частые ошибки
- Ждать, что компьютер «поймёт». Он не поймёт — он выполнит буквально. Это даже хорошо: значит, всё под твоим контролем.
- Расстраиваться из-за бага. Баг — это не провал, а часть работы. Даже у создателей твоих любимых игр их тысячи. Лови баг как Покемона!
Что мы узнали
- Компьютер делает ровно то, что написано, и в том порядке, в каком написано.
- Полезно читать программу глазами компьютера — это помогает понять, что получится.
- Баг — это ошибка в программе; искать и чинить баги (отладка) — нормальная часть работы.