Модуль 1 · Урок 1.1
Программа и её выполнение
Что такое программа, как запустить первую программу, чем выражение отличается от инструкции и как читать сообщения об ошибках в коде.
Этот курс рассчитан на начало с нуля. Его цель — научить читать программу как последовательность понятных действий, самостоятельно строить решения и проверять их. Подготовка к ЕГЭ — одно из применений этих знаний. Большая часть примеров относится к обычному программированию: обработке текста, чисел, файлов и записей.
Программа — это точная запись действий, и компьютер выполняет ровно написанное, а не задуманное. На этом держится всё остальное: и чтение чужого кода, и поиск ошибок по сообщению Python.
Весь урок построен на одной задаче — стоимости трёх тетрадей по 40 рублей. Мы запишем её кодом, разберём, из каких частей она состоит, а потом намеренно испортим и прочитаем, что ответит Python.
Программа и алгоритм
Программа описывает действия, которые человек выполняет в уме. Предположим, нужно найти стоимость трёх тетрадей по 40 рублей. Человек может сразу получить 120. Для компьютера нужно описать действия: взять количество, взять цену, перемножить их, показать результат.
Алгоритм — точное описание действий для решения задачи. Программа — запись этих действий на языке, который может обрабатывать компьютер. Один алгоритм можно записать на Python, C++, Pascal и других языках программирования или сначала описать всё словами на естественном языке.
Исходный код — это текст программы, записанный на языке программирования. Python — это название языка программирования. Этим же словом часто называют и программу, которая читает и выполняет код на Python; точнее её называют интерпретатором Python. Интерпретатор — это программа, которая разбирает исходный код и выполняет описанные в нём действия. Когда ты запускаешь файл с кодом на Python, фактически работает интерпретатор Python: он анализирует код и организует его выполнение.
Тонкости:как Python выполняет код
В CPython — обычном Python с python.org — исходный текст сначала преобразуется во внутренние инструкции. Для первых программ достаточно понимать наблюдаемое поведение; представление «компьютер буквально исполняет каждую напечатанную строку по очереди» позднее нужно уточнить: условия пропускают блоки, циклы повторяют их, функции выполняются при вызове.
Установка Python
Чтобы запускать программы на своём компьютере, нужны две вещи: интерпретатор Python и программа, в которой пишут код. Интерпретатор ставится один раз. Писать код можно в разных программах:
- Редактор кода — программа для набора и правки текста программы.
- IDE (интегрированная среда разработки) — редактор, в который встроены запуск программы и поиск ошибок.
- PyCharm — IDE для Python, с которой удобно работать весь курс. IDLE — простая IDE, которая ставится вместе с Python. VS Code — популярный редактор, которому Python добавляет расширение.
Шаг 1. Установи Python — он нужен при любом выборе среды. Покажем на Windows.

- Открой python.org/downloads и нажми «Download Python install manager». Это установщик Python от его разработчиков; его же можно взять в Microsoft Store под названием «Python install manager».
- Запусти скачанный файл и нажми «Install».

Окно установки: нажми «Install» — остальное установщик сделает сам. - Открой терминал: в меню «Пуск» набери «Терминал» (или «Командная строка») и запусти найденную программу.
- Набери
pythonи нажми Enter. При первом запуске установщик сам скачает последнюю версию Python, затем появится приглашение>>>: Python ждёт строку кода (это интерактивный режим, о нём — в следующем разделе). Выйти из него можно командойexit(). - Проверь версию командой:
python --versionОтвет вида Python 3.15.0 означает, что всё готово; цифры зависят от версии. На python.org есть и прежний отдельный установщик («standalone installer»): если ставишь через него, в первом окне отметь «Add python.exe to PATH», иначе команда python в терминале не найдётся.

>>> набрано 3 * 40, ниже ответ, exit() возвращает в терминал.Шаг 2. Выбери, где писать код. Мы советуем PyCharm: в нём удобно работать весь курс. Остальные варианты тоже подходят — выбери вкладку:
- Скачай PyCharm для Windows с jetbrains.com/pycharm, запусти установщик и пройди его кнопкой «Next». Для курса хватит бесплатных возможностей PyCharm.
- Открой PyCharm и выбери «New Project». В поле «Location» укажи папку для программ курса. Установленный Python PyCharm найдёт сам — оставь его и нажми «Create».

Окно «New Project»: папка проекта в поле «Location», найденный Python в поле интерпретатора, кнопка «Create». - В панели «Project» слева щёлкни правой кнопкой по папке проекта и выбери «New → Python File». Имя —
main, расширение.pyPyCharm добавит сам.
Новый файл: правая кнопка по папке проекта → «New» → «Python File». - Набери код в открывшемся файле и запусти его: Ctrl
Shift F10 или правой кнопкой по тексту → «Run 'main'». Вывод появится внизу, в панели «Run». 
Файл main.pyв редакторе, внизу в панели «Run» — вывод программы.
- IDLE ставится вместе с Python. В меню «Пуск» набери «IDLE» и открой найденную программу. Откроется окно «IDLE Shell» с приглашением
>>>— это интерактивный режим. - Выбери «File → New File»: откроется пустое окно редактора.
- Набери код и сохрани файл командой «File → Save» или Ctrl
S, имя — main.py. - Выбери «Run → Run Module» или нажми F5. Вывод появится в окне «IDLE Shell».

Слева редактор с файлом и меню «Run → Run Module», справа «IDLE Shell» с выводом программы.
- Скачай VS Code с code.visualstudio.com и установи.
- Открой раздел расширений — Ctrl
Shift X, найди «Python» от Microsoft и нажми «Install». - Выбери «File → Open Folder» и открой папку для программ. Создай в ней файл
main.py. - Набери код и нажми треугольник «Run Python File» в правом верхнем углу. Вывод появится внизу, в панели «Terminal».

Кнопка «Run Python File» справа вверху запускает файл, вывод — в панели «Terminal».
macOS и Linux. PyCharm и VS Code ставятся так же, с их сайтов. На macOS установщик с python.org ставит и IDLE, а команда в терминале называется python3. В Linux Python обычно уже есть: проверь его командой python3 --version; IDLE в Ubuntu и Debian ставится пакетом idle3. Дальше в курсе вместо python пиши python3.
Курс использует Python 3.10 и новее, без сторонних библиотек в основных примерах. Перед экзаменом проверь, какая версия стоит на твоём компьютере.
Не получается? Напиши в наш Telegram-чат t.me/kodumka: опиши, что делал и что видишь на экране, — поможем разобраться.
Первая программа
Первая программа — это файл с расширением .py, который запускает интерпретатор. Расширение .py обозначает исходный файл Python. Создай файл main.py, запиши в него две строки и запусти так, как показано во вкладке твоей среды в разделе «Установка Python»:
print("Привет!")print(3 * 40)Запуск из терминала работает без IDE. Терминал — окно, принимающее команды операционной системы. Проще всего открыть его прямо в PyCharm: вкладка «Terminal» внизу окна уже открыта в папке проекта. В отдельном терминале сначала перейди в папку с файлом командой cd и путём к папке, например cd C:\Users\Anna\PycharmProjects\kurs. Затем выполни:
python main.py
python main.py.Если набрать в терминале просто python, откроется интерактивный режим с приглашением >>>: каждая введённая строка выполняется сразу, и её результат виден ниже. Это удобно, чтобы проверить одну строку, но программа в файле так не сохраняется. В интерактивный режим вводят Python-код, а не команду python main.py. Само приглашение >>> в файл копировать не надо.
print — готовая функция вывода. Пока считай функцию именованным действием, которому можно передать данные. Скобки после имени означают вызов: просьбу выполнить это действие. Переданные внутри скобок данные называются аргументами. В первом вызове передаётся текст, во втором — результат умножения. Строки программы выполняются сверху вниз, поэтому «Привет!» напечатано раньше числа.
Как работать с кодом
Код в уроке мало прочитать — его запускают и меняют. У чтения кода и написания кода разные задачи. Когда читаешь, нужно понимать, что делает каждая строка. Когда пишешь, сначала объясни будущие действия по-русски. Проверяй не только совпадение ответа, но и своё понимание причин.
С каждым блоком кода в уроке полезно пройти один и тот же круг из четырёх шагов:
- Написать. Перепиши код в свой файл — руками, а не копированием: так замечаешь каждый знак.
- Запустить файл и посмотреть, что он напечатал.
- Сравнить напечатанное с выводом под кодом в уроке. Если не совпало, ищи, чем твой код отличается.
- Объяснить, почему вывод именно такой. Затем измени одну деталь — например, число 40 на 50 — предскажи новый вывод и пройди круг снова.
Как читать блок кода. В шапке блока — условное имя файла, ниже — сам код, под ним «Вывод»: всё, что программа покажет на экране, строка в строку. Сообщение об ошибке в выводе выделено красным. Строки после знака # — пояснения, не команды.
#, вывод программы и, если она остановилась, сообщение об ошибке красным. На схеме показана только последняя строка сообщения; полное сообщение разберём в разделе «Как читать traceback».Команды для терминала показаны отдельно — строкой со знаком >, а не блоком кода: их вводят в терминале, а не пишут в файл .py.
Критерий понимания. Недостаточно знать, что программа «что-то считает». Нужно уметь сказать, что делает каждая строка, какое значение получается на каждом шаге и почему вывод именно такой.
Выражение и инструкция
Выражение вычисляет значение, инструкция — целая строка программы, которая выполняется. Выражение — запись, у которой есть значение: 3 * 40 (значение 120), 2 + 5 (7), "Привет!" (текст). Инструкция — то, что Python выполняет как отдельный шаг программы, обычно одна строка. print(3 * 40) — инструкция: она вычисляет выражение 3 * 40 и выводит его значение. Строка 3 * 40 без print — тоже инструкция, но она только вычисляет значение и ничего с ним не делает. Другие виды инструкций — присваивание, условие, цикл — появятся в следующих уроках.
Тонкости:выражение внутри инструкции
Строго говоря, вызов print(3 * 40) — тоже выражение: у него есть значение, специальное None, «ничего». Строка с одним выражением становится инструкцией-выражением. Для первых программ важно другое: значение видно на экране, только если его передали в print.
В интерактивном режиме результат введённого выражения обычно показывается автоматически. В файле строка 3 * 40 сама по себе ничего не напечатает. Чтобы увидеть результат, используй print(3 * 40):
3 * 40print(3 * 40)print("3 * 40")Первая строка вычислила 120, но результат никуда не попал. Вторая передала то же значение в print. Третья напечатала текст: кавычки превращают запись в текстовые данные, и Python не вычисляет арифметику внутри обычной строки.
print.Три вида ошибок
Программа не догадывается о намерениях. Python различает print и Print: для него это разные имена. Пропущенная кавычка или скобка, неверный знак могут изменить смысл либо сделать запись недопустимой. Правила допустимой записи называются синтаксисом. Если правила записи соблюдены, это ещё не доказывает, что решена нужная задача.
Испортим программу о тетрадях тремя способами и посмотрим, что ответит Python. Здесь пропущена закрывающая скобка:
print(3 * 40Здесь переставлены буквы в имени функции:
pritn(3 * 40)А здесь всё записано верно, но вместо умножения стоит сложение:
print(3 + 40)Это три разные проблемы. Синтаксическая ошибка означает, что запись нельзя корректно разобрать: не закрыта кавычка или скобка. Исключение при выполнении означает, что очередная операция не может завершиться обычным образом: например, вызвать функцию с неизвестным именем или разделить на ноль. Логическая ошибка означает, что программа выполняется, но вычисляет не то, что требуется. О ней Python не сообщает вовсе: 43 выглядит как обычное число, и только сверка с ручным расчётом показывает, что ответ неверен.
Как читать traceback
Сообщение об ошибке читают с последней строки. Когда программа останавливается, Python печатает traceback — сообщение с цепочкой мест, через которые выполнение дошло до ошибки. Начни с последней строки: там тип и пояснение. Над ней — строка вида File "main.py", line 2: она называет файл и номер строки, на которой выполнение остановилось. Открой эту строку своего файла и посмотри, какая её часть не может выполниться. Синтаксическая ошибка иногда указывает на строку ниже настоящей причины: если скобка не закрыта, Python замечает это только на следующей строке.
Вот полное сообщение для программы, которая делит стоимость на ноль:
print(3 * 40)print(120 / 0)Первая строка программы успела выполниться: 120 напечатано. Последняя строка сообщения называет тип ошибки ZeroDivisionError и пояснение «деление на ноль». Строка File "main.py", line 2 указывает место: вторая строка файла. Значки ~ и ^ в новых версиях Python подчёркивают виновную часть выражения.
В шапке этого блока кода справа есть кнопка «Запуск». Она выполняет программу по одной строке: подсвечивает строку, которая только что выполнилась, объясняет её, показывает переменные и всё, что уже выведено. Здесь на втором шаге видно, где программа остановилась и что первая строка успела напечатать. Такая кнопка есть у блоков кода курса, где важен порядок выполнения строк.
Тип ошибки подсказывает, где искать причину. SyntaxError и его родственник IndentationError (лишние пробелы в начале строки) появляются ещё при разборе записи: проверь скобки, кавычки и отступы. NameError и ZeroDivisionError появляются при выполнении: в первом случае имя написано с опечаткой или ещё не создано, во втором делитель оказался нулём. Другие типы ошибок появятся вместе с конструкциями, которые их вызывают: неподходящее значение при преобразовании текста в число, несуществующая позиция строки или ключ словаря, отсутствующий файл.
Итог
За урок задача о тетрадях прошла весь путь: от действий в уме до файла, который выполняет Python, и до сообщений, которыми Python отвечает на ошибки. Вот что из этого понадобится в каждом следующем уроке.
- ПрограммаТочная запись алгоритма на языке программирования. Компьютер выполняет ровно написанное, а не задуманное.
- Интерпретатор PythonПрограмма, которая читает исходный код и выполняет его строки сверху вниз.
- Где писать и запускатьКод пишут в IDE или редакторе (PyCharm, IDLE, VS Code) и сохраняют в файл
.py. Запускают кнопкой в IDE или командойpython main.pyв терминале. После>>>строки выполняются по одной. - Как работать с кодомЗапусти, сравни вывод с ожидаемым, измени одну деталь и запусти снова.
print(3 * 40)Выражение3 * 40вычисляет значение, но в файле его видно, только если передать его вprint."3 * 40"Кавычки делают запись текстом: он печатается как есть.- Три вида ошибокСинтаксическую Python находит до запуска, исключение — на строке, где выполнение споткнулось. Логическую видно только при сверке ответа: о ней Python не сообщает.
- TracebackЧитают снизу вверх: последняя строка — тип ошибки и пояснение, выше — файл и номер строки, ещё выше — сама строка кода.
Проверьте себя
Ответь сначала сам, потом открой ответ.
Напиши программу, выводящую своё имя, затем результат 12 + 8, затем текст 12 + 8. Объясни разницу двух последних строк.
ОтветСкрыть ответ
Например, print("Анна"), print(12 + 8), print("12 + 8"); вывод: Анна, 20, 12 + 8. Без кавычек выражение вычисляется, в кавычках печатается как текст.
Программа print(5 * 23 остановилась с ошибкой. Какой у неё тип и как исправить запись?
ОтветСкрыть ответ
SyntaxError: '(' was never closed — не закрыта скобка; верно print(5 * 23).
Какую ошибку выдаст Print(5 * 23) и почему, хотя print написан «почти правильно»?
ОтветСкрыть ответ
NameError: имени Print нет, Python различает заглавные и строчные буквы.
Нужно напечатать стоимость трёх тетрадей по 40 рублей и двух ручек по 15 рублей. Программа print(3 * 40 + 2 + 15) работает без сообщений об ошибке. Что она выводит и к какому виду относится её ошибка?
ОтветСкрыть ответ
Выводит 137 — это логическая ошибка: вместо 2 * 15 записано 2 + 15; верная стоимость 150.
Программа из двух строк print(4 * 25) и print(100 / 0) остановилась. Что успело напечататься и что будет в последней строке сообщения?
ОтветСкрыть ответ
Успело напечататься 100; последняя строка — ZeroDivisionError: division by zero.
Практика
Для проверки ответов нужен JavaScript. Условия, подсказки и решения доступны ниже.
Что напечатает программа?
7 * 6print(7 * 6)print("7*6")Запишите напечатанные строки через пробел в порядке вывода.
Подсказка
Выражение без print в файле вычисляется, но ничего не выводит. Текст в кавычках print печатает как есть, не вычисляя.
Разбор
Первая строка программы вычисляет 42, но ничего не выводит. Вторая печатает 42, третья — текст 7*6 как есть: кавычки делают его строкой.
Ответ: 42 7*6
Пять ручек стоят по 23 рубля
Пять ручек стоят по 23 рубля. Напиши программу, которая выводит стоимость покупки, запусти её и запиши, что она напечатала.
Введите число.
Подсказка
Запиши стоимость одним выражением — количество, умноженное на цену, — и передай его в print.
Разбор
print(5 * 23) выводит стоимость покупки: 115.
Ответ: 115
Напиши программу, которая выводит три строки: стоимость трёх тетрадей по 40…
Напиши программу, которая выводит три строки: стоимость трёх тетрадей по 40 рублей, стоимость двух ручек по 15 рублей и общую стоимость покупки. Каждую стоимость вычисли выражением, а не готовым числом. Запусти программу и запиши, что она напечатала.
Запишите напечатанные числа через пробел в порядке вывода.
Подсказка
Каждый вызов print печатает свою строку. Общую стоимость тоже вычисли выражением: сложи стоимость тетрадей и ручек.
Разбор
Программа: print(3 * 40), print(2 * 15), print(3 * 40 + 2 * 15). Она печатает три строки: 120, 30 и 150.
Ответ: 120 30 150