Помилка в Python — не поломка, а звичайний етап роботи. Мова сама пише, що саме їй не сподобалося й у якому рядку. Проблема новачка не в тому, що помилки трапляються, а в тому, що спершу він не вміє читати повідомлення про них. Це минає за кілька занять.

Відступи: найчастіша причина, чому код не працює

У Python відступ на початку рядка — частина синтаксису, а не оформлення. Саме він показує, що входить у цикл або в умову, а що ні. У більшості інших мов для цього є фігурні дужки, у Python — пробіли.

Тому найпоширеніша ситуація на перших заняттях: код виглядає правильним, але один рядок зсунуто на пробіл, і програма поводиться дивно або не запускається взагалі. Дитина шукає помилку в логіці, а вона в пробілі.

Лікується це швидко — редактор підсвічує рівні відступів, і за пару тижнів рука сама тримає структуру.

Одне «дорівнює» замість двох

У коді = означає «поклади значення», а == — «порівняй». Тема умов if / else у програмі йде третьою, і саме на ній ця плутанина зустрічається майже в кожного.

Причина зрозуміла: у школі знак рівності означає рівно порівняння. Доводиться свідомо розводити два сенси. Коли дитина один раз побачила, як програма замість перевірки перезаписала значення, — запам'ятовує надовго.

Забуті двокрапка й дужки

Після if, for, while і def ставиться двокрапка. Забути її — класика перших занять, і Python чесно повідомляє SyntaxError із зазначенням рядка.

Те саме з дужками у виклику функції: print без дужок нічого не надрукує. Обидві помилки корисні тим, що вчать головного навику — читати повідомлення, а не гадати.

Плутанина типів: число проти рядка

Друга тема програми — змінні й типи даних, і там же виникає перший конфлікт: введене з клавіатури значення приходить як рядок, навіть якщо це цифри. Спроба додати до нього число дає помилку.

Це не дрібниця, а перша зустріч із думкою, що дані бувають різного роду й перетворення між ними потрібно робити свідомо. Пізніше, у темах про файли та API, ця звичка виявляється дуже до речі.

Нескінченний цикл

Цикл while працює, доки умова істинна. Якщо всередині забути змінити змінну, програма не зупиниться ніколи. На занятті це виглядає ефектно: екран заповнюється текстом, доки хтось не натисне зупинку.

Корисний побічний ефект — дитина на власні очі бачить, що комп'ютер не «здогадається», чого від нього хотіли. Він виконає буквально написане, скільки б це не тривало.

Чи означають часті помилки, що дитині складно?

Ні. Кількість помилок на старті майже нічого не говорить про здібності — вона говорить про те, що дитина пише код, а не переписує готове. Тривожніший сигнал протилежний: коли помилок немає, бо нічого не пробується.

Що робить викладач, коли дитина застрягла?

Не показує відповідь одразу. Спершу просить прочитати повідомлення про помилку вголос і подивитися на вказаний рядок. У групі до 6 учнів це реально зробити з кожним — власне, тому група й невелика.

Як допомогти вдома, якщо ви не програміст?

Достатньо двох питань: «що написано в помилці?» і «який рядок вона називає?». Відповідати на них дитина буде сама, і цього зазвичай вистачає. Розв'язувати за неї не потрібно.

Чому це нормальна частина навчання

Програма першого ступеня — 156 занять протягом 18 місяців — побудована так, що теми нарощуються поступово: змінні, умови, цикли, функції, списки, і лише потім Turtle і Minecraft. Кожна нова тема додає свій набір типових помилок, і кожна відпрацьовується, доки не перестане заважати.

Якщо цікаво, що виходить на іншому кінці цього шляху, подивіться що кладуть у портфоліо до 18 років. А з якого віку братися за мову — розібрано окремо: з якого віку вчити Python.