Как написать код: первая программа на Python от задачи до запуска

Пишем первую программу на Python от задачи до запуска: описываем задачу словами, разбиваем на шаги, переводим в код и разбираем ошибки.

Пример на программе, которая делит счёт в кафе с чаевыми, весь вывод получен в Python 3.14.

Плюс та же задача на JavaScript и C и правила PEP 8 для новичка.

Статью написал:
Ваня Буявец, продюсер, основатель Checkroi
Ваня Буявец
Основатель Checkroi, продюсер, эксперт в выборе онлайн-курсов
Все 3156 статей автора Подписаться на Телеграм-канал
Одобрено экспертом:
Наташа Буявец, основатель Checkroi, эксперт по онлайн-курсам
Наташа Буявец
Основательница Checkroi, продюсер Youtube-каналов, эксперт по онлайн-курсам
Все 3810 экспертных мнений Подписаться на Телеграм-канал
Обложка: Как написать код: первая программа на Python от задачи до запуска

Чтобы написать код, нужны три вещи: язык, место для текста программы и задача, которую вы умеете объяснить словами. Для первого раза хватит Python и встроенного редактора IDLE. Дальше порядок такой: описываете задачу по-русски, разбиваете её на шаги, переводите каждый шаг в строку кода, запускаете и читаете ошибку. Ошибка будет почти наверняка, и это нормальная часть работы.

Ниже весь путь на одной маленькой программе, которая делит счёт в кафе с чаевыми. Каждый пример мы запустили в Python 3.14, вывод в блоках настоящий. Если нужны совсем простые разминки на одну строку, начните с Hello World и ещё четырёх примеров на Python, а словарь понятий есть в статье про основы программирования.

CheckroiCheckroiПодборка курсов по Python569 курсов • 52 школыСравните цены, школы, программу и найдите выгодные предложения по обучениюСравнить→

Что такое исходный код и где его писать

Рой за ноутбуком пишет первую программу на Python

Исходный код программы хранится в обычном текстовом файле с инструкциями на языке программирования. У Python файл заканчивается на .py. Компьютер не читает его напрямую: текст исполняет интерпретатор Python, а в языках вроде C его сначала переводит в машинные команды компилятор. Разницу подробно разобрали в статье о компиляции.

Писать код можно хоть в «Блокноте», но удобнее в программе, которая подсвечивает синтаксис и запускает файл одной кнопкой.

Где писать Кому подходит Что нужно поставить
IDLE Первые программы, учебные задачи Ничего сверх Python: IDLE идёт в комплекте
VS Code Тем, кто хочет сразу рабочий инструмент Python, VS Code и расширение Python
PyCharm Большим проектам из многих файлов Python и PyCharm
Терминал и любой редактор Скриптам на сервере, коротким утилитам Python

В документации Python IDLE описан как интегрированная среда разработки и обучения, которая почти одинаково работает в Windows, Unix и macOS (справка IDLE). Сам Python скачивается с официального сайта, по шагам это есть в инструкции как скачать и установить Python. Если выбираете между редакторами, загляните в сравнение 10 сред для Python, а настройку VS Code мы разобрали в отдельной инструкции.

Какой язык выбрать для первого кода

Принцип написания кода одинаков в любом языке: переменные, условия, циклы и функции есть везде. Отличаются запись и то, сколько служебных строк нужно до первой полезной. Вот одна и та же задача про счёт в кафе на трёх языках, все три варианта мы запустили и получили С каждого: 1595.00 ₽.

Python, три строки:

total = 4350
with_tips = total * (1 + 10 / 100)
print(f"С каждого: {with_tips / 3:.2f} ₽")

JavaScript, запускается в Node.js или прямо в консоли браузера:

const total = 4350;
const withTips = total * (1 + 10 / 100);
console.log(`С каждого: ${(withTips / 3).toFixed(2)} ₽`);

C, перед запуском файл надо скомпилировать:

#include <stdio.h>

int main(void) {
    double total = 4350;
    double with_tips = total * (1 + 10.0 / 100);
    printf("С каждого: %.2f ₽\n", with_tips / 3);
    return 0;
}

В C пришлось написать 10.0 вместо 10: деление двух целых чисел там отбрасывает дробную часть, и 10 / 100 дало бы ноль. Таких ловушек в первые недели много, поэтому для старта мы советуем язык попроще.

Язык Для чего чаще берут Порог входа
Python Автоматизация, анализ данных, боты, бэкенд Низкий: короткая запись, понятные сообщения об ошибках
JavaScript Сайты и веб-приложения Низкий: работает в любом браузере без установки
C Системные программы, микроконтроллеры Высокий: ручная работа с типами и памятью, компиляция

Если тянет к C, у нас есть разбор первой программы на C. Дальше в статье пример на Python.

Канал основателя Checkroi Вани Буявца3 800 человек читают мой Телеграм-канал про нейросетиСобрал промпты для Claude Code и ChatGPT, разборы ИИ-инструментов и лайфхаки по продвижению бизнеса в одном местеПрисоединиться

Как написать первую программу: шесть шагов

Возьмём задачу из жизни. Вы поужинали втроём, чек на 4 350 ₽, хотите оставить 10 % чаевых и поделить сумму поровну. Посчитать это можно на калькуляторе, но программа сделает то же самое за секунду для любого чека.

Шаг 1: опишите задачу словами

Пока вы не можете рассказать задачу человеку, вы не сможете рассказать её компьютеру. Запишите три вещи:

  • что на входе: сумма по чеку, число людей, процент чаевых;
  • что на выходе: сумма с чаевыми и сколько платит каждый;
  • как одно получается из другого: добавить к сумме процент, разделить на число людей.

Шаг 2: разбейте решение на шаги

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

# 1. спросить сумму по чеку
# 2. спросить, сколько человек
# 3. спросить процент чаевых
# 4. посчитать сумму с чаевыми
# 5. разделить на число людей
# 6. показать оба числа

Каждая строка плана должна быть настолько простой, чтобы её можно было записать одной-двумя строками кода. Если шаг не получается перевести, он слишком крупный, его надо дробить дальше.

Шаг 3: переведите каждый шаг в код

Создайте файл schet.py и запишите под планом код. Получится вот что:

# Делим счёт в кафе с учётом чаевых
total = float(input("Сумма по чеку, ₽: "))
people = int(input("Сколько человек: "))
tips = int(input("Чаевые, %: "))

with_tips = total * (1 + tips / 100)
per_person = with_tips / people

print(f"Итого с чаевыми: {with_tips:.2f} ₽")
print(f"С каждого: {per_person:.2f} ₽")

Здесь четыре инструмента, которые встречаются почти в любой программе. Функция input() спрашивает пользователя и возвращает ответ строкой. Функции float() и int() превращают строку в дробное или целое число, подробнее про это есть в статье про ввод числа в Python. Слова слева от знака = называются переменными, в них программа хранит промежуточные результаты.

Строка с буквой f перед кавычками подставляет значение прямо в текст, а :.2f оставляет два знака после запятой. Это f-строки. Без форматирования при чеке 4 350,50 ₽ на троих программа напечатала бы 1595.1833333333334.

Шаг 4: запустите программу

В IDLE откройте файл и нажмите F5. В VS Code есть кнопка запуска в правом верхнем углу редактора. Из терминала программа запускается командой: на Windows python schet.py, на macOS и Linux python3 schet.py. Если терминал отвечает, что команды нет, помогут инструкции как запустить скрипт Python через командную строку.

$ python3 schet.py
Сумма по чеку, ₽: 4350
Сколько человек: 3
Чаевые, %: 10
Итого с чаевыми: 4785.00 ₽
С каждого: 1595.00 ₽

Проверьте результат руками: 4 350 плюс 10 % дают 4 785, делим на троих и получаем 1 595. Совпало, значит, логика верная.

Шаг 5: сломайте программу нарочно

Рабочая на одном примере программа ещё не рабочая. Попробуйте ввести то, что введёт живой человек. Например, сумму с копейками через запятую:

Сумма по чеку, ₽: 4350,50
Traceback (most recent call last):
  File "…/kod/schet.py", line 2, in <module>
    total = float(input("Сумма по чеку, ₽: "))
            ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: could not convert string to float: '4350,50'

Путь к файлу мы сократили, у вас он будет свой. Python понимает только точку как разделитель дробной части, а мы в России пишем запятую. Вторая поломка: если в графе «Сколько человек» ввести 0, программа упадёт с ZeroDivisionError: division by zero, потому что на ноль делить нельзя.

Шаг 6: исправьте и проверьте ещё раз

Решение: заменить запятую на точку и переспрашивать, пока пользователь не введёт число. Повторяющийся кусок выносим в функцию, ошибку ловим конструкцией try except, а ноль людей отсекаем условием:

# Делим счёт в кафе с учётом чаевых


def ask_number(question):
    """Спрашивает число, пока пользователь не введёт его правильно."""
    while True:
        answer = input(question).replace(",", ".")
        try:
            return float(answer)
        except ValueError:
            print("Нужно число, например 4350 или 4350.50")


total = ask_number("Сумма по чеку, ₽: ")
people = int(ask_number("Сколько человек: "))
tips = ask_number("Чаевые, %: ")

if people < 1:
    print("Людей должно быть не меньше одного")
else:
    with_tips = total * (1 + tips / 100)
    print(f"Итого с чаевыми: {with_tips:.2f} ₽")
    print(f"С каждого: {with_tips / people:.2f} ₽")

Прогоняем тот же сценарий, что ломал первую версию:

Сумма по чеку, ₽: четыре тысячи
Нужно число, например 4350 или 4350.50
Сумма по чеку, ₽: 4350,50
Сколько человек: 3
Чаевые, %: 10
Итого с чаевыми: 4785.55 ₽
С каждого: 1595.18 ₽

Программа стала больше чем вдвое длиннее, и почти весь прирост ушёл на защиту от неправильного ввода. Так выглядит большая часть настоящей работы программиста: основная логика занимает пару строк, остальное страхует её от реального мира.

Как читать сообщение об ошибке

Окно терминала с сообщением об ошибке и подсказкой исправления

Новички пугаются красного текста и закрывают окно. Зря: сообщение Python говорит, в каком файле и какой строке проблема и что именно пошло не так. Читать его надо снизу вверх. Последняя строка называет тип ошибки, строка с номером над ней показывает место.

Документация Python делит ошибки на два вида: синтаксические, которые там называют, пожалуй, самыми частыми жалобами Python, пока вы его изучаете, и исключения, которые возникают при выполнении даже синтаксически верного кода (раздел «Errors and Exceptions»). Вот четыре сообщения, которые вы увидите в первую неделю. Все получены запуском в Python 3.14:

Что написали Что ответил Python Что это значит
print("Привет" SyntaxError: '(' was never closed Не закрыли скобку
if 5 > 3: и print("да") без отступа IndentationError: expected an indented block after 'if' statement on line 1 Тело условия должно быть сдвинуто вправо
print(peple) при переменной people NameError: name 'peple' is not defined. Did you mean: 'people'? Опечатка в имени, Python сам подсказывает верное
age = input("Возраст: "), затем age + 1 TypeError: can only concatenate str (not "int") to str input() вернул строку, её нельзя сложить с числом

Если сообщение непонятно, скопируйте его последнюю строку в поиск целиком, в кавычках. Почти любую ошибку новичка кто-то уже разобрал до вас.

Если ошибки нет, а ответ неверный

Хуже красного текста только его отсутствие при неправильном результате. Допустим, вы забыли скобки и написали total * 1 + tips / 100. Python молча посчитает, ведь формально всё верно. Самый простой способ найти такое место: напечатать промежуточное значение.

with_tips = total * 1 + tips / 100
print("with_tips =", with_tips)
with_tips = 4350.1

Чаевые в 10 копеек на 4 350 ₽ явно не то, что задумано: умножение выполнилось раньше сложения. Ставим скобки, убираем отладочный print и запускаем снова. В редакторах вроде VS Code есть и полноценный отладчик с остановкой на строке, но на первых программах print хватает.

Как пишут код программисты: привычки с первого дня

Программа из прошлого раздела работает, но код читают чаще, чем пишут: вы сами через месяц, коллега, проверяющий на собеседовании. Поэтому у Python есть общий стиль оформления PEP 8. Из него новичку стоит сразу взять три правила (текст PEP 8):

  • отступ в 4 пробела на каждый уровень вложенности;
  • строка не длиннее 79 символов, длинные выражения переносите;
  • имена функций и переменных пишутся строчными буквами, слова разделяются подчёркиванием: per_person, а не PerPerson или pp.

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

  1. Называйте переменные по смыслу. with_tips через месяц понятнее, чем x2.
  2. Пишите маленькими кусками и запускайте после каждого. Если добавили десять строк и всё сломалось, искать виноватого придётся среди десяти. Если две, то среди двух.
  3. Комментируйте, зачем, а не что. Комментарий «заменяем запятую на точку, потому что так пишут в России» полезен, а «вызываем replace» ничего не добавляет к коду.
  4. Сохраняйте версии. Система контроля версий Git позволяет откатиться к вчерашнему рабочему варианту. Как она устроена, объясняем в статье Git простыми словами.

Можно ли написать код с нейросетью

Можно, и программисты так работают каждый день. Подход, когда код почти целиком пишет нейросеть по описанию, называют вайбкодингом, мы разобрали его в отдельной статье.

Но у новичка с нейросетью есть ловушка. Она выдаёт код, который выглядит правильно, и вы не отличите рабочий от сломанного, пока не умеете читать сам код. Наш счёт в кафе это хорошо показывает: первая версия правильно считает 4 350 на троих и падает на «4350,50». Чтобы заметить такое, надо понимать, что делает каждая строка.

Решение: просите нейросеть объяснить код построчно, а не только написать его, и обязательно запускайте результат на неудобных данных, как в шаге 5.

Ваня БуявецКанал основателя Checkroi Вани БуявцаЗабирайте промпты и обучение по нейросетям в моём Телеграм-каналеБольше 3 800 человек уже применяют Claude Code, ChatGPT и другие нейросети в работе, учёбе, бизнесе и жизниПерейти в канал

Частые ошибки новичков и что с ними делать

Рой радуется, когда исправленная программа заработала
  • Сразу браться за большой проект. Игра или свой мессенджер в первую неделю почти всегда заканчиваются брошенным файлом. Начните с задач на 10–20 строк, хороший набор собран в 30 задачах по Python для начинающих.
  • Копировать код, не перепечатывая. Руки запоминают синтаксис быстрее глаз. Перепечатайте пример, даже если можно вставить.
  • Смешивать пробелы и табуляцию. В Python отступ входит в синтаксис, и разнобой даёт IndentationError там, где глазами всё ровно. Настройте редактор вставлять 4 пробела по клавише Tab.
  • Называть файл как стандартный модуль. Файл random.py в папке проекта перекроет встроенный модуль random, и импорт начнёт вести себя странно.
  • Учить синтаксис без задач. Можно прочитать всё про синтаксис Python и не написать ни одной программы. Код учится только кодом: на каждую новую тему придумайте задачу и решите её.

Где научиться писать код системно

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

Курс решает это программой с порядком тем и проверкой домашних заданий живым человеком. Сравнить курсы по цене, длительности и формату можно в каталоге курсов по Python, а если цель — сменить профессию, посмотрите курсы для программистов и план, как стать программистом за 12 месяцев.

КурсШколаСтоимость со скидкойВ рассрочкуДлитель­ностьОбзор курса от Checkroi
Профессия «Python-разработчик»
Перейти на сайт курса
SkillboxSkillbox157 335 ₽5987 ₽/мес.10 месяцевОбзор курса
Fullstack-разработчик на Python
Перейти на сайт курса
НетологияНетология137 000 ₽7125 ₽/мес.21 месяцОбзор курса
ДО Профессия Python-разработчик
Перейти на сайт курса
GeekBrainsGeekBrains149 001 ₽3167 ₽/мес.10 месяцевОбзор курса
Автоматизированное тестирование на Python
Перейти на сайт курса
SkillboxSkillbox118 754 ₽4108 ₽/мес.9 месяцевОбзор курса
Профессия Python-разработчик
Перейти на сайт курса
SkillFactorySkillFactory140 040 ₽3890 ₽/мес.10 месяцевОбзор курса

Больше программ — в полном каталоге курсов по Python

Часто задаваемые вопросы

С чего начать писать код с нуля?

Установите Python и откройте IDLE, он идёт в комплекте. Возьмите задачу из жизни на 10–20 строк, опишите её словами, разбейте на шаги и переводите каждый шаг в строку кода. Запускайте программу после каждого маленького куска.

Где писать код на компьютере?

Для первых программ хватит IDLE. Когда файлов станет больше, переходите в VS Code с расширением Python или в PyCharm. Короткие скрипты можно писать в любом редакторе и запускать из терминала командой python на Windows или python3 на macOS и Linux.

Какой язык выбрать, чтобы научиться писать код?

Для первого кода удобнее всего Python: короткая запись и понятные сообщения об ошибках. JavaScript работает прямо в браузере и подходит тем, кто хочет делать сайты. C даёт больше ловушек на старте, его лучше брать вторым.

Что делать, если программа выдаёт ошибку?

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

Можно ли научиться писать код самостоятельно?

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

Читайте Checkroi первым в Google
Добавьте Checkroi в избранные источники — и наши разборы курсов и обзоры школ будут показываться выше в вашей выдаче Google.
Оставить комментарий
0 комментариев
Форма комментария

Оставьте комментарий

Напишите, что думаете. Нам важно ваше мнение!