Зачем этот урок
Вы прошли Ступень 0 и вводный модуль: умеете работать в терминале, а в уроке про окружение один раз настроили uv и собрали первый проект через uv init / uv run. Хватит готовиться — пора писать код. В этом уроке вы напишете и запустите свою первую настоящую программу. Не «Hello World ради галочки», а программу, которая что-то считает и показывает результат. Сейчас мы намеренно работаем «голым» python3, чтобы сосредоточиться на самом языке; во весь рост uv и ruff разберём дальше, в модуле 2. Цель прямо сейчас проще и важнее: получить первый успех прямо в терминале.
Нам понадобится только то, что уже установлено: команда python3.
Два способа запустить Python
Python можно запускать двумя способами, и оба пригодятся вам каждый день.
Способ 1 — REPL (интерактивный режим). Это режим «вопрос-ответ»: вы пишете строку, жмёте Enter, Python сразу отвечает. Идеально, чтобы что-то быстро проверить. Откройте терминал и наберите:
python3
Вы увидите приглашение из трёх символов >>>. Это значит, что Python ждёт ваш ввод:
>>> 2 + 2
4
>>> print("привет")
привет
Обратите внимание: в REPL необязательно писать print, чтобы увидеть результат. Просто наберите 2 + 2 — и Python покажет 4. Это удобно для экспериментов. Чтобы выйти из REPL, наберите exit() и нажмите Enter (или нажмите Ctrl+D).
Способ 2 — запуск файла. Когда код больше пары строк или его надо сохранить, мы кладём его в файл с расширением .py и запускаем целиком. Это основной способ для настоящих программ. К нему мы вернёмся в третьем уроке этого модуля.
Символы >>> — это подсказка самого Python, вы их НЕ печатаете. Когда видите >>> в примерах ниже, значит дело происходит в REPL, и набирать нужно только то, что идёт после стрелок.
Переменные — это просто имена
Переменная в Python — это имя, которое вы даёте какому-то значению, чтобы потом к нему обращаться. Создаётся переменная знаком = (читается «присвоить»):
>>> age = 25
>>> age
25
Слева от = — имя (age), справа — значение (25). Теперь, где бы вы ни написали age, Python подставит туда 25. Имя можно переиспользовать и менять:
>>> age = 25
>>> age = age + 1
>>> age
26
Строка age = age + 1 читается так: «возьми текущее значение age (25), прибавь 1, и запиши результат обратно в age». Получилось 26.
Имена выбираете вы сами, но есть простые правила: только латинские буквы, цифры и знак подчёркивания _, и начинать с цифры нельзя. Хорошее имя говорит, что внутри: price, user_count, total — понятно сразу. Имена x, a, tmp лучше оставить для совсем коротких черновиков. В Python принято разделять слова в имени подчёркиванием — user_count, а не userCount или usercount; это называется snake_case и встречается в любом Python-коде, который вы откроете.
Зачем вообще переменные, если можно просто писать числа? Затем, что переменная даёт значению имя и смысл. Сравните 300 и total — второе читается без догадок. И если значение нужно в нескольких местах, его достаточно поменять в одном: исправили price, и все вычисления, где оно участвует, пересчитаются заново при следующем запуске. Это основа любой программы — мы храним данные под понятными именами и работаем с именами, а не с «голыми» числами, разбросанными по коду.
>>> price = 100
>>> quantity = 3
>>> total = price * quantity
>>> total
300
Числа и арифметика
С числами Python работает как обычный калькулятор. Сложение, вычитание, умножение, деление:
>>> 10 + 3
13
>>> 10 - 3
7
>>> 10 * 3
30
>>> 10 / 3
3.3333333333333335
Заметьте: 10 / 3 дало дробь, а не «3 с остатком». Деление / в Python всегда возвращает дробное число (тип float), даже когда делится ровно:
>>> 6 / 2
3.0
Если вам нужно именно целочисленное деление (сколько целых раз одно входит в другое) — используйте двойной слэш //, а остаток от деления даёт знак процента %:
>>> 10 // 3
3
>>> 10 % 3
1
Здесь 10 // 3 — это «сколько целых троек в десяти» (три), а 10 % 3 — «что осталось» (один). Эта пара очень пригодится позже: например, чётность числа проверяют как n % 2.
Возведение в степень — двойная звёздочка **:
>>> 2 ** 10
1024
Скобки работают как в математике и задают порядок действий:
>>> 2 + 3 * 4
14
>>> (2 + 3) * 4
20
print — показать результат
В REPL результат печатается сам, но в файле-программе это не так: программа выполнит вычисления молча, и если вы хотите что-то увидеть, нужно явно попросить вывод через print(). Внутри скобок указываете, что показать:
>>> print(42)
42
>>> total = 300
>>> print(total)
300
print умеет выводить несколько значений сразу — перечислите их через запятую, и между ними автоматически встанет пробел:
>>> price = 100
>>> quantity = 3
>>> print("Итого:", price * quantity, "рублей")
Итого: 300 рублей
Текст в кавычках ("Итого:", "рублей") Python печатает буквально, а price * quantity сначала вычисляет, потом выводит результат. Кавычки можно использовать как двойные, так и одинарные — для Python разницы нет, главное чтобы открывающая и закрывающая совпадали.
Не бойтесь ошибок
Пока вы экспериментируете в REPL, вы обязательно где-то ошибётесь — забудете скобку, опечатаетесь в имени, попробуете сложить несовместимое. Это нормально и даже полезно: Python в ответ напечатает сообщение об ошибке. Например, если обратиться к переменной, которой нет:
>>> totl
NameError: name 'totl' is not defined
Python прямо говорит: имя totl не определено — скорее всего опечатка в total. Сообщения об ошибках в Python довольно понятные, и читать их — навык, который экономит часы. Не пугайтесь красного текста: это не «программа сломалась навсегда», а подсказка, что именно поправить. В REPL вы просто набираете строку заново — ничего страшного не произошло.
Попробуй сам
Откройте REPL командой python3 и пройдите по шагам. Сначала предсказывайте результат вслух, потом проверяйте — так вы реально учитесь, а не просто читаете.
>>> hours = 8
>>> rate = 500
>>> pay = hours * rate
>>> print("Заработок за день:", pay)
Заработок за день: 4000
>>> days = 5
>>> print("За неделю:", pay * days)
За неделю: 20000
А теперь — три выражения, где результат может удивить. Наберите каждое и объясните себе, почему так:
>>> 7 / 2
>>> 7 // 2
>>> 7 % 2
Подсказка: первое — обычное деление (дробь), второе — целая часть, третье — остаток. Если все три ответа понятны (3.5, 3, 1) — вы освоили арифметику Python.
Не выходите из REPL — он понадобится в следующем уроке, где мы перейдём к строкам и научимся спрашивать что-то у пользователя через input().