Введение в Python: первая программа

Первое знакомство с синтаксисом Python через практику. Вы научитесь запускать код и использовать интерпретатор как мощный калькулятор, создавая фундамент для работы с данными.

Знакомство с интерпретатором и функция print()

Знакомство с интерпретатором и функция print()

Открывая чистый файл или командную строку, многие начинающие программисты испытывают ступор. Кажется, что для создания программы нужно сразу написать полотно сложного текста. На самом деле, программирование — это просто диалог. Вы отдаете команды, а машина их выполняет. Проблема лишь в том, что вы говорите на разных языках.

Компьютер понимает только электрические сигналы, которые мы для удобства записываем как нули и единицы (машинный код). Вы понимаете русский, английский и язык человеческой логики. Чтобы диалог состоялся, нужен переводчик.

Кто такой интерпретатор?

В мире Python роль такого переводчика-синхрониста выполняет интерпретатор. Это специальная программа, которая читает написанный вами код, переводит его на язык нулей и единиц и мгновенно заставляет процессор выполнить нужные действия.

Интерпретатор читает ваш код строка за строкой. Прочитал первую строку — перевел — выполнил. Прочитал вторую — перевел — выполнил. Благодаря этому вы можете общаться с Python в интерактивном режиме: написали одну команду, нажали клавишу ввода (Enter) и тут же увидели результат. Это идеальный способ побороть страх чистого листа.

Ваша первая команда: функция print()

Чтобы проверить, работает ли наш «переводчик», давайте попросим его что-нибудь сказать. В Python для вывода текста на экран используется встроенная функция print().

Функция в программировании — это заранее заготовленная команда, которая выполняет определенное действие.

Давайте напишем классическую первую программу, которую пишут все разработчики в мире:

print("Привет, мир!")

Если вы введете эту строку в интерактивный интерпретатор Python и нажмете Enter, компьютер мгновенно ответит вам:

Привет, мир!

Анатомия команды

Почему команда выглядит именно так? Интерпретатор не умеет догадываться о ваших намерениях, ему нужны четкие правила — синтаксис. Разберем код по косточкам:

  1. print — это имя функции. Глагол, который говорит интерпретатору: «напечатай на экране». Python чувствителен к регистру: если вы напишете Print с большой буквы, интерпретатор вас не поймет.
  2. () — круглые скобки. Они всегда идут сразу после имени функции. Внутрь скобок мы кладем то, с чем функция должна поработать. Это как коробка, которую мы передаем курьеру.
  3. "" — кавычки (можно использовать и двойные "", и одинарные ''). Они говорят интерпретатору: «всё, что находится внутри — это просто текст, не пытайся искать здесь другие команды».

Ошибки — это нормально

Интерпретатор невероятно исполнителен, но абсолютно лишен фантазии. Если вы нарушите синтаксис, он не станет додумывать за вас, а просто остановит работу и выдаст ошибку.

Представьте, что вы забыли поставить кавычки:

print(Привет, мир!)

В ответ вы получите пугающий красный текст, который закончится словами SyntaxError: invalid syntax (Синтаксическая ошибка). Это не значит, что вы сломали компьютер. Это значит, что интерпретатор дошел до слова «Привет», не увидел кавычек и подумал: «Ага, это какая-то новая команда! Но я такой не знаю».

Ошибки на этом этапе — ваш главный инструмент обучения. Видите SyntaxError? Значит, где-то пропущена скобка, кавычка или допущена опечатка в слове print.

Сегодня вы сделали самый важный шаг: установили контакт с машиной и заставили её вывести текст. Но Python — это мощный инструмент для работы с данными, а не просто печатная машинка. В следующем шаге мы заставим интерпретатор выполнять за нас математические вычисления прямо внутри команд.

Арифметика в коде: операторы и приоритеты вычислений

Арифметика в коде: операторы и приоритеты вычислений

Мы уже научились передавать интерпретатору команды и выводить текст на экран. Но если бы Python умел работать только с текстом, он был бы просто печатной машинкой. Настоящая сила программирования в анализе данных начинается с вычислений. Python — это невероятно мощный калькулятор, и чтобы его включить, достаточно убрать одну деталь.

Числа против текста: магия кавычек

Вспомним нашу первую программу: print("Привет, мир!"). Кавычки давали интерпретатору четкий сигнал: «Это просто текст, не пытайся его анализировать, выведи как есть».

Если мы напишем математический пример в кавычках, Python послушно сработает как печатная машинка:

print("5 + 3") выведет на экран ровно 5 + 3.

Но стоит нам убрать кавычки, как интерпретатор переключается в режим вычислений. Он видит числа (операнды) и математический знак (оператор), выполняет действие и передает функции print() уже готовый результат.

print(5 + 3) выведет на экран 8.

Базовый набор аналитика

В Python встроены все привычные математические операторы. Они пишутся именно так, как вы привыкли видеть их на клавиатуре:

  • Сложение: print(10 + 5) даст 15
  • Вычитание: print(10 - 5) даст 5
  • Умножение: print(10 * 5) даст 50
  • Деление: print(10 / 4) даст 2.5

Обратите внимание на деление: обычный слэш / всегда возвращает точный результат с дробной частью, даже если числа делятся нацело. Команда print(10 / 2) выведет 5.0, а не просто 5. Точка отделяет целую часть от дробной.

Особое деление: целая часть и остаток

В анализе данных и алгоритмах часто нужно не просто разделить число, а понять его структуру: кратно ли оно другому числу, сколько полных недель в 100 днях, или как распределить 1000 рублей на 3 равные части без копеек.

Для этого в Python есть два специальных оператора деления:

  1. Целочисленное деление (//) — отбрасывает дробную часть и показывает, сколько раз одно число целиком помещается в другом.
  2. Остаток от деления (%) — показывает, что осталось после того, как мы забрали все целые части.

Посмотрим на классический пример: у нас есть 10 яблок и 3 корзины.

  • print(10 // 3) выведет 3. Именно столько целых яблок окажется в каждой корзине.
  • print(10 % 3) выведет 1. Одно яблоко останется лежать на столе, так как его нельзя положить целиком ни в одну из корзин.

Оператор % — один из самых популярных в программировании. Например, если x % 2 равно нулю, значит число x — четное.

Приоритет вычислений: кто первый?

Поскольку Python — это строгая математическая система, он подчиняется классическим правилам алгебры. Интерпретатор не читает математическое выражение слева направо, он смотрит на приоритет операторов.

Умножение * и все виды деления (/, //, %) имеют более высокий приоритет, чем сложение + и вычитание -.

Если мы напишем: print(10 + 5 * 2)

Интерпретатор сначала умножит 5 на 2, получит 10, а затем прибавит первые 10. Результат: 20.

Если нам нужно изменить этот порядок, мы используем круглые скобки. То, что в скобках, вычисляется в первую очередь.

print((10 + 5) * 2)

Теперь интерпретатор сначала сложит 10 и 5, получит 15, и только потом умножит на 2. Результат: 30.

Мы научились заставлять интерпретатор считать. Но сейчас мы работаем в интерактивном режиме: ввели строку — получили ответ. Если мы закроем программу, все наши формулы исчезнут. Чтобы строить сложные аналитические отчеты, нам нужно научиться сохранять наши команды в файлы и выполнять их целиком. Этим мы займемся на следующем шаге.

От расчетов к коду: создание и запуск первого скрипта

От расчетов к коду: создание и запуск первого скрипта

До сих пор мы общались с интерпретатором в интерактивном режиме: вводили команду, нажимали Enter и мгновенно получали ответ. Это отлично подходит для проверки гипотез или использования Python как мощного калькулятора. Но у этого режима есть фатальный недостаток: как только вы закроете окно, все ваши расчеты исчезнут. Если завтра вам понадобится повторить те же вычисления для новых данных, придется набирать всё заново.

Чтобы автоматизировать работу, нам нужно научиться сохранять набор команд и передавать их интерпретатору целиком.

Что такое скрипт

Вместо того чтобы отдавать команды по одной, мы можем записать их в обычный текстовый файл. Такой файл с набором инструкций называется скриптом (или программой).

Скрипт — это текстовый файл, содержащий последовательность команд на языке программирования, которые интерпретатор должен выполнить от начала до конца.

Чтобы интерпретатор понял, что внутри файла находится именно код на Python, а не рецепт пирога, файлу обязательно задают расширение .py (например, calculator.py или analysis.py).

Разница в подходах кардинально меняет то, как мы пишем код. В интерактивном режиме мы ведем с интерпретатором диалог. В скрипте — пишем подробную инструкцию, отдаем её целиком и ждем финального результата.

Анатомия первого скрипта: комментарии и последовательность

Представим практическую задачу: нам нужно посчитать базовые финансовые показатели. Мы продали 50 подписок по 1200 руб., а затраты на сервер составили 15000 руб.

Создадим файл finance.py и напишем в нем следующий код:

# Расчет выручки от продажи подписок
print(50 * 1200)

# Расчет чистой прибыли (выручка минус затраты)
print((50 * 1200) - 15000)

В этом коде появился новый символ — решетка #. Всё, что написано в строке после решетки, интерпретатор полностью игнорирует. Это комментарии — текстовые заметки, которые программист оставляет для себя и своих коллег. Они никак не влияют на выполнение программы, но критически важны для понимания того, зачем написан тот или иной расчет.

Когда мы запускаем этот скрипт, интерпретатор начинает читать файл строго сверху вниз, строка за строкой.

Сначала он видит первую строку, понимает, что это комментарий, и пропускает её. Затем переходит ко второй строке, выполняет умножение и выводит результат на экран. Третью пустую строку он также пропускает. На четвертой снова видит комментарий, а на пятой — производит вычитание и выводит финальную цифру.

Строгая последовательность — основа программирования. Компьютер не может забежать вперед или поменять строки местами.

Ловушка пустого экрана: почему скрипты «молчат»

При переходе от интерактивного режима к скриптам начинающие разработчики часто сталкиваются с одной и той же проблемой.

В интерактивном режиме, если вы напишете 50 * 1200 и нажмете Enter, Python услужливо выведет 60000. Интерпретатор предполагает, что раз вы ввели выражение напрямую, вы хотите увидеть его результат.

В скриптах это правило не работает. Если вы напишете в файле finance.py такой код:

50 * 1200

И запустите его, на экране не появится ничего.

Интерпретатор честно прочитает строку, вычислит, что результат равен 60000, но поскольку вы не дали явной команды print(), он оставит это число в своей оперативной памяти и пойдет дальше. Скрипт выполнится успешно, но «молча».

Именно поэтому в скриптах функция print() становится вашим главным окном в мир программы. Любой результат, который вы хотите увидеть на экране, должен быть явно обернут в print().

Теперь у нас есть инструмент для сохранения расчетов. Но в нашем скрипте finance.py есть явный изъян: выражение 50 * 1200 (наша выручка) дублируется дважды. Если цена подписки изменится, нам придется искать и исправлять это число по всему файлу. Чтобы этого избежать, программа должна уметь запоминать промежуточные результаты и давать им имена. Этим мы займемся на следующем шаге.