Первая программа

Первая программа на Python может состоять из одной понятной команды. Но за этой короткой строкой уже виден полный рабочий цикл: создать файл, сохранить исходный код, передать файл интерпретатору, увидеть результат и при необходимости исправить ошибку. В этом уроке мы пройдём весь цикл и подготовим основу для будущих программ, которые будут читать датчики и управлять роботом.
Программу на Python записывают в текстовом файле с расширением .py. Интерпретатор Python читает скрипт и выполняет его инструкции. Функция print() отправляет текст и значения в стандартный вывод — обычно в терминал или панель вывода среды разработки.
Зачем это нужно
До подключения моторов полезно проверить сам путь запуска программы. Если короткий скрипт работает, значит:
- интерпретатор Python 3 установлен и доступен;
- файл сохранён в ожидаемой папке;
- команда запуска указывает на правильный файл;
- вывод программы виден разработчику;
- сообщения об ошибках можно связать с конкретной строкой.
В робототехническом проекте тот же приём используется для диагностики. Программа может вывести, что контроллер запущен, конфигурация загружена, датчик опрошен, а команда двигателя рассчитана. Текст не заменяет измерение, зато помогает увидеть, до какого этапа дошёл алгоритм.
Первая программа также отделяет две разные задачи. Сначала мы проверяем, что код вообще запускается. Затем проверяем, соответствует ли его поведение замыслу. Скрипт без синтаксических ошибок всё ещё может выводить неверный порог расстояния или перепутать названия приводов.
Главная идея
Скрипт — это последовательность инструкций. На верхнем уровне Python выполняет их в записанном порядке, пока управление не изменит условие, цикл или вызов функции. С этими конструкциями мы познакомимся дальше, а пока достаточно простой схемы:
файл first_robot.py -> интерпретатор Python 3 -> вывод и наблюдаемое действие
Перед выполнением файла Python разбирает его синтаксис. Поэтому незакрытая кавычка или скобка может остановить скрипт ещё до первой команды. Ошибка, возникающая уже во время выполнения, называется исключением: к этому моменту предыдущие инструкции могли успеть выполниться.
Интерактивный режим и файл со скриптом
Python можно использовать двумя способами. Оба полезны, но решают разные задачи.
| Режим | Как выглядит работа | Для чего подходит |
|---|---|---|
| интерактивный | интерпретатор показывает приглашение >>> и сразу выполняет введённое выражение | быстро проверить одну операцию или значение |
| скрипт | интерпретатор получает путь к файлу .py и выполняет его | сохранить повторяемую программу, передать её другому человеку, запускать испытание снова |
В интерактивном режиме можно ввести:
2 + 3
Интерпретатор покажет результат выражения. В файле отдельное выражение не следует использовать как средство отчёта: результат надёжнее передать функции print().
Для уроков и робототехнических экспериментов создавайте файлы. Тогда версия программы остаётся на диске, её можно проверить, сравнить с предыдущим вариантом и запустить тем же способом.
Минимальный скрипт
Создайте файл first_robot.py и сохраните в нём:
print("Привет, робототехника!")
print — встроенная функция Python. Круглые скобки ограничивают аргументы, которые мы передаём функции. Текст внутри кавычек — строка. После вызова строка появляется в стандартном выводе.
Точка с запятой в конце строки не нужна. Python допускает её в некоторых местах, но обычный стиль — одна простая инструкция на строку без ;.
В этом первом примере строка начинается с самого начала, без пробелов перед print. Для простого скрипта верхнего уровня отступ не нужен. В Python отступы имеют смысл и могут менять структуру программы, поэтому случайные пробелы в начале строки лучше не ставить. Подробнее отступы появятся в уроке про условия.
Для запуска откройте терминал в папке с файлом:
python3 first_robot.py
На некоторых системах команда называется python, а в Windows может использоваться py. Сначала проверьте доступную версию:
python3 --version
Не копируйте имя команды вслепую: оно зависит от установки. Нам нужен именно Python 3.
Python 3 по умолчанию считает исходные файлы записанными в UTF-8. Поэтому русский текст в строках обычно не требует специальной строки с объявлением кодировки. Редактор тоже должен сохранить файл в UTF-8.
Что умеет print()
Функции можно передать несколько объектов. По умолчанию print() разделит их пробелом и завершит вывод переводом строки:
print("Проект:", "учебный ровер")
print("Этап", 1, "завершён")
print("Система готова")
Значения sep и end позволяют изменить разделитель и окончание вывода:
print("левый", "правый", sep=" | ")
print("Проверка", end=": ")
print("готово")
Именованные аргументы пока можно читать буквально: sep означает разделитель, а end — то, что будет напечатано после всех переданных объектов. В обычных диагностических сообщениях стандартного пробела и перевода строки часто достаточно.
Специальная последовательность \n внутри строки создаёт новую строку:
print("Запуск\nПроверка датчика\nГотово")
Такой вариант компактен, но несколько отдельных вызовов удобнее переставлять и временно отключать во время отладки.
Порядок выполнения

Рассмотрим скрипт из нескольких шагов:
print("1. Запуск программы")
print("2. Проверка связи с датчиком")
print("3. Расчёт команды")
print("4. Завершение проверки")
Строки появятся в том же порядке. Если выполнение остановится на третьем шаге, две первые надписи помогут сузить область поиска. Однако сообщение "Связь с датчиком есть" не доказывает, что датчик действительно ответил. Диагностика должна описывать совершённую программой проверку, а не желаемое состояние.
Комментарии начинаются символом # и продолжаются до конца физической строки. Интерпретатор их не выполняет:
# Этот скрипт пока моделирует этапы запуска без оборудования.
print("Контроллер: запуск")
print("Датчик: модельное значение")
Хороший комментарий объясняет ограничение, происхождение настройки или причину решения. Комментарий # выводим текст перед print() только повторяет очевидное действие.
Как читать первые ошибки
При ошибке не меняйте сразу несколько строк. Сначала найдите тип сообщения, имя файла и номер строки, затем проверьте отмеченное место и строку перед ним.
| Ситуация | Когда обнаруживается | Что искать |
|---|---|---|
SyntaxError | при разборе исходного текста | незакрытую кавычку или скобку, пропущенный двоеточие, неверный отступ |
NameError | во время выполнения | имя использовано до создания или написано иначе |
TypeError | во время выполнения операции | операция получила несовместимые виды данных |
| неверный результат | программа завершилась без обязательной ошибки | неверное требование, число, единицу измерения или порядок действий |
Намеренно неверный фрагмент:
print("Проверка завершена"
print("Готово")
Python может отметить вторую строку, хотя исправить нужно незакрытую скобку в первой. Для исключения последняя строка сообщения обычно сообщает его тип и краткую причину. Строки выше показывают путь выполнения, который называют traceback.
Проверить синтаксис файла без обычного запуска можно стандартным модулем py_compile:
python3 -m py_compile first_robot.py
Успешная команда обычно ничего не печатает и может создать байткод в папке __pycache__. Она проверяет возможность компиляции исходного файла, но не доказывает правильность алгоритма и не заменяет испытание.
Первый диагностический сценарий робота
Пока у нас нет настоящего датчика, можно честно обозначить модельные данные:
print("Стенд: Reversi rover")
print("Источник данных: модель")
print("Расстояние до препятствия:", 42, "см")
print("Команда двигателя:", 0)
print("Проверка завершена")
Этот скрипт уже задаёт полезную форму отчёта:
| Часть сообщения | Что она фиксирует |
|---|---|
| стенд | к какому устройству относится запуск |
| источник данных | измерение это или модель |
| величина и единица | что именно наблюдалось |
| команда | какой результат рассчитал алгоритм |
| завершение | дошла ли программа до конца сценария |
Числа здесь ещё записаны прямо в вызовах. В следующем уроке мы дадим им имена и будем хранить в переменных.
Что запомнить о первом скрипте
- файл
.pyхранит исходный текст программы; - интерпретатор можно использовать интерактивно или передать ему путь к скрипту;
print()показывает текст и значения в стандартном выводе;- верхнеуровневые инструкции простого скрипта выполняются по порядку;
- первая команда простого скрипта пишется без случайного отступа в начале строки;
#начинает комментарий вне строкового литерала;- синтаксическая ошибка, исключение и неправильный результат — разные случаи;
- успешный запуск подтверждается ожидаемым выводом, а не только отсутствием красного сообщения.
Практика
- Создайте
first_robot.py, выведите название своего проекта и запустите файл из терминала. Запишите использованную команду и версию Python. - Добавьте четыре отдельных сообщения: начало проверки, источник данных, модельное измерение с единицей и завершение.
- Измените
sepтак, чтобы три названия узлов робота выводились через стрелку или вертикальную черту. Подберите вариант, который легко читать. - Намеренно удалите одну закрывающую кавычку. Зафиксируйте тип ошибки, номер строки и фактическую причину. Затем восстановите рабочий код.
- Проверьте исправленный файл через
python3 -m py_compileи обычным запуском. Объясните, какую часть проверки выполняет каждая команда. - Напишите комментарий, который честно сообщает, что данные датчика пока смоделированы. Не повторяйте в комментарии сам вызов
print().
Готовых ответов нет: результатом должны стать ваш файл, команды запуска и собственные наблюдения.
Проверьте себя
- Чем интерактивный режим отличается от запуска файла
.py? - Что делает функция
print()? - Почему отсутствие
SyntaxErrorещё не доказывает правильность программы робота? - Что обозначают
sepиend? - Как начинается комментарий в Python?
- Где искать тип необработанного исключения в сообщении об ошибке?
- Что проверяет
py_compileи чего он не проверяет?
Сначала ответьте без подсказки. Ответ можно считать полным, если вы:
- формулируете основную мысль своими словами;
- называете важные условия, ограничения или меры безопасности;
- для схемы, кода или расчёта показываете ход решения и ожидаемый результат.
Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.
Словарь статьи
| Термин | Значение |
|---|---|
| исходный код | текст программы, написанный разработчиком |
| скрипт | файл с программой, который передают интерпретатору |
| интерпретатор | программа, запускающая и выполняющая код Python |
| интерактивный режим | работа, при которой команда вводится и сразу выполняется |
| стандартный вывод | поток, куда print() отправляет обычные сообщения |
| аргумент | значение, переданное функции при вызове |
| комментарий | пояснение после #, которое не выполняется как инструкция |
| синтаксис | правила записи конструкций языка |
| исключение | ошибка, обнаруженная во время выполнения |
| traceback | описание пути выполнения до необработанного исключения |
Связанные темы
- Подготовка среды — как установить Python и проверить интерпретатор.
- Переменные и типы данных — как дать имена измерениям, командам и состояниям.
- Условия — как выбрать действие по результату проверки.
- Циклы — как повторять опрос датчика.
- Функции — как разделять программу на самостоятельные операции.