Перейти к содержимому
Теория · Первая программа · урок 1 из 7

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

Чему вы научитесь

Чему вы научитесь:

  • запускать программу на Python из файла .py;
  • печатать текст и числа функцией print и задавать, чем она их разделяет;
  • отличать ошибку, найденную до запуска, от ошибки во время работы и читать трассировку;
  • писать свою функцию с def и return и вызывать её.
Лист hello.py входит в машину python, и из неё выходит лента с тремя строками в том же порядке

Представьте письменный стол, а на нём машину с табличкой python. Вы кладёте в неё лист hello.py с тремя пронумерованными строками. Машина читает лист сверху вниз и выполняет строку за строкой. Из неё выходит лента, на которой напечатаны три строки — в том же порядке, что и на листе.

Так и работает Python. Программа на Python — это текст, и сам компьютер такой текст не выполняет. Это делает интерпретатор — программа, которая читает текст на Python и выполняет записанные в нём команды. В нашей картинке машина python — это интерпретатор, лист — файл с программой, а лента — то, что программа печатает.

Вот программа из одной строки:

Python
print("Hello, world")  # Hello, world

Давайте разберём, из чего состоит эта строка:

  1. print — имя команды, которая печатает.
  2. Круглые скобки после имени запускают эту команду.
  3. "Hello, world" в двойных кавычках — текст, который нужно напечатать.

print — это функция: готовая команда с именем, встроенная в Python. Запись print(...) вызывает её, и функция печатает то, что стоит в круглых скобках. Текст в двойных кавычках печатается как есть, без кавычек. В кавычках может стоять любой текст, в том числе русский: print("Привет") напечатает Привет.

Файл и запуск

Текст программы хранят в файле с расширением .py, например hello.py. Это и есть лист, который кладут в машину.

Чтобы запустить файл, наберите команду python hello.py в окне для текстовых команд. На macOS и Linux она обычно называется python3 hello.py. Интерпретатор откроет файл и выполнит его, а то, что напечатает print, появится в том же окне.

Интерпретатор проверяет правила языка, а не замысел автора. Опечатку в "Helo, world" он пропустит: текст в кавычках для него — данные. Её видно только в том, что напечатает программа.

Сверху вниз

Вернёмся к листу с тремя строками. Интерпретатор выполняет строки файла по очереди, сверху вниз. Каждый вызов print печатает отдельную строку, поэтому вывод идёт в том же порядке, что и строки программы.

Python
print("first")  # first
print("second")  # second
print("third")  # third

Давайте посмотрим, что происходит при запуске:

  1. Интерпретатор выполняет первую строку, и в выводе появляется first.
  2. Затем он выполняет вторую строку, и ниже печатается second.
  3. Третья строка печатает third.
  4. Строк больше нет, и программа завершается.

Пустые строки интерпретатор пропускает: они только отделяют одну часть программы от другой.

Здесь аналогия с машиной перестаёт работать. Машина не копирует лист на ленту, а выполняет записанные на нём команды. В вывод попадает только то, что печатает print, а сам текст программы там не появляется.

Комментарии

Текст от символа # до конца строки — комментарий, и интерпретатор его пропускает. Комментарии пишут для людей, которые читают программу.

В примерах курса комментарий в конце строки показывает, что эта строка печатает. Если запустить такой пример у себя, комментарий в вывод не попадёт: там будет только то, что напечатал print.

Частая ошибка

Имя функции написано с заглавной буквы:

Python
Print("Hello, world")  # ✗
TEXT
NameError: name 'Print' is not defined. Did you mean: 'print'?

Python различает заглавные и строчные буквы, поэтому Print и print — разные имена. Функции с именем Print в Python нет, и интерпретатор останавливает программу с ошибкой NameError. В конце сообщения он подсказывает похожее имя, которое существует, — print.

Главное

  • Программу на Python выполняет интерпретатор: он читает файл .py и выполняет строки сверху вниз.
  • print(...) печатает то, что стоит в скобках, и каждый вызов даёт отдельную строку вывода.
  • Текст от # до конца строки — комментарий, и интерпретатор его пропускает.
  • Python различает заглавные и строчные буквы: Print и print — разные имена.