Основы программирования: восемь понятий с примерами кода на Python

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

Разбираем каждое на коротком примере на Python с реальным выводом, учимся читать сообщения об ошибках и собираем всё в одну программу на 20 строк.

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

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

Ниже каждое понятие разобрано на коротком примере на Python, с реальным выводом, а в конце все они собраны в одну программу на 20 строк. Если вы ещё выбираете, с чего вообще начинать и сколько времени закладывать, сначала загляните в план «Программирование с нуля: с чего начать», а сюда возвращайтесь за самой базой.

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

Что такое программирование простыми словами

Рой за ноутбуком пишет первую программу и объясняет её шаги

Программирование означает запись инструкций для компьютера на языке, который он умеет выполнить. Компьютер не догадывается, что вы имели в виду. Он делает ровно то, что написано, в том порядке, в котором написано.

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

Человек пишет код на языке программирования: Python, JavaScript, Java, C. Процессор этот текст не понимает, ему нужны машинные команды. Перевод делает специальная программа, и устроен он двумя способами.

Способ Как работает Примеры языков
Компиляция Весь код заранее переводится в готовый исполняемый файл, потом файл запускают C, C++, Go, Rust
Интерпретация Программа-интерпретатор читает код и сразу выполняет его Python, JavaScript, PHP

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

Из чего состоят основы программирования

Восемь кубиков-понятий программирования выстроены в одну конструкцию

Ниже карта понятий. Каждое из них разобрано дальше по тексту, а по ссылке в правой колонке лежит отдельный подробный материал.

Понятие Что делает Пример из жизни Подробно
Алгоритм Задаёт порядок шагов решения Рецепт блюда раздел ниже
Переменная Хранит значение под именем Подписанная коробка что такое переменная
Тип данных Определяет, что лежит в переменной и что с этим можно делать Число, текст, «да/нет» логический тип
Оператор Считает, сравнивает, соединяет Знаки на калькуляторе операторы в Python
Условие Выбирает ветку по ситуации «Если дождь, беру зонт» раздел ниже
Цикл Повторяет действие Пройти все пункты списка покупок цикл while
Функция Даёт имя куску кода, чтобы звать его снова Кнопка «сварить кофе» функции в Python
Коллекция Хранит много значений вместе Список покупок, телефонная книга списки в Python

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

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

Алгоритм: сначала шаги, потом код

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

Задача: посчитать, сколько денег ушло на покупки дороже 1 000 ₽. Сначала словами:

  1. Взять список цен.
  2. Завести счётчик суммы, равный нулю.
  3. Пройти по ценам по одной.
  4. Если цена больше 1 000, прибавить её к счётчику.
  5. Показать счётчик.

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

prices = [450, 1200, 300, 2500]
total = 0
for price in prices:
    if price > 1000:
        total = total + price
print(total)
3700

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

Данные: переменные, типы и операторы

Переменные

Переменная хранит значение под именем. Записали age = 27, и дальше в программе можно писать age вместо числа. Значение можно поменять, имя останется тем же.

Имена лучше давать по смыслу: price и total читаются сами, а a и x1 через неделю не вспомнит даже автор. Подробный разбор с правилами именования есть в статье о переменных в программировании.

Типы данных

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

name = "Анна"
age = 27
height = 1.68
is_student = False

print(type(name), type(age), type(height), type(is_student))
<class 'str'> <class 'int'> <class 'float'> <class 'bool'>
  • str: строка, то есть текст в кавычках.
  • int: целое число, о нём есть отдельный материал про тип int.
  • float: дробное число, с точкой вместо запятой.
  • bool: логическое значение, True или False.

Тип важен потому, что одна и та же операция для разных типов значит разное. Вот что происходит со сложением:

print("2" + "2")
print(2 + 2)
print(int("2") + 2)
print("2" + 2)
22
4
4
TypeError: can only concatenate str (not "int") to str

Две строки склеились в «22», два числа сложились в 4. Строку и число Python складывать отказывается и останавливает программу с ошибкой. Решение: явно превратить строку в число функцией int(), как в третьей строке. С этим новички сталкиваются, когда читают число с клавиатуры: input() всегда возвращает строку, разбор есть в статье про ввод числа в Python.

Операторы

Операторы делают с данными действия. Арифметические считают, операторы сравнения отвечают «да» или «нет», логические соединяют несколько условий.

print(17 / 5)
print(17 // 5)
print(17 % 5)
print(2 ** 10)
print(7 > 3 and 2 > 5)
3.4
3
2
1024
False

Обычное деление / даёт дробь. Оператор // делит с округлением вниз, а % возвращает остаток, так их и описывает учебник в документации Python. Остаток нужен чаще, чем кажется: по нему проверяют чётность и делимость. Знак ** возводит в степень. Последняя строка вернула False, потому что and требует, чтобы были верны обе части. Все знаки с примерами собраны в материале об операторах в Python.

Управление ходом программы: условия и циклы

Без условий и циклов программа выполняется строго сверху вниз, по одной строке. Эти две конструкции делают её «умной»: она начинает выбирать и повторять.

Условия

Условие проверяет выражение и выполняет одну из веток. В Python для этого есть if, elif (иначе если) и else (иначе):

balance = 350
price = 500

if balance >= price:
    print("Оплата прошла")
elif balance > 0:
    print("Не хватает", price - balance, "₽")
else:
    print("На счёте пусто")
Не хватает 150 ₽

Python проверяет ветки по очереди и выполняет первую, где условие верно. Остальные он пропускает, даже если их условие тоже подошло бы.

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

Циклы

Цикл повторяет блок кода. Есть два основных вида:

  • for перебирает готовый набор значений: элементы списка, буквы строки, числа из диапазона.
  • while повторяет блок, пока условие остаётся верным. Сколько будет повторов, заранее может быть неизвестно.
for day in ["пн", "вт", "ср"]:
    print("Тренировка:", day)

count = 3
while count > 0:
    print("Осталось попыток:", count)
    count = count - 1
Тренировка: пн
Тренировка: вт
Тренировка: ср
Осталось попыток: 3
Осталось попыток: 2
Осталось попыток: 1

В while легко ошибиться: забыть строку count = count - 1. Тогда условие никогда не станет ложным, и программа будет печатать одно и то же бесконечно. Как этого избежать и как выйти из цикла досрочно, подробно разобрано в статье про цикл while.

Функции и коллекции

Функции

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

def with_discount(price, percent):
    return price - price * percent / 100

print(with_discount(2000, 15))
print(with_discount(990, 10))
1700.0
891.0

Здесь price и percent называются параметрами, это значения на входе. Слово return отдаёт результат наружу. Результат вышел дробным, потому что деление / в Python всегда возвращает float.

Как передавать параметры по умолчанию и чем return отличается от print, читайте в материале о функциях в Python. Функция может вызывать и саму себя, такой приём называется рекурсией, но для основ это следующий шаг.

Списки и словари

Когда значений много, отдельная переменная на каждое не годится. Для этого есть коллекции. Две главные:

  • Список хранит значения по порядку. Обращение по номеру, и нумерация начинается с нуля.
  • Словарь хранит пары «ключ — значение». Обращение по ключу, как к слову в словаре.
cart = ["хлеб", "молоко", "сыр"]
cart.append("яблоки")
print(cart[0], len(cart))

stock = {"хлеб": 12, "молоко": 0}
print(stock["хлеб"])
print(stock.get("сыр", "нет в базе"))
хлеб 4
12
нет в базе

Метод append() добавил элемент в конец списка, len() посчитал, сколько их стало. В словаре метод get() вернул запасное значение, потому что ключа «сыр» в нём нет. Если обратиться через квадратные скобки к отсутствующему ключу, программа упадёт с ошибкой KeyError.

В документации Python словари описаны так: в отличие от последовательностей, они индексируются ключами. Методы списков с примерами собраны в статье о списках в Python.

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

Ошибки и отладка: как читать сообщения программы

Рой с лупой спокойно разбирает сообщение об ошибке на экране

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

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

Вид ошибки Когда видно Пример
Синтаксическая Программа не запускается вовсе Забыли отступ или двоеточие
Исключение Программа падает во время работы Обратились к пятому элементу списка из двух
Логическая Программа работает, но результат неверный Написали > вместо >=

Синтаксическая ошибка выглядит так. Python прямо пишет, чего не хватает и в какой строке:

if True:
print("привет")
IndentationError: expected an indented block after 'if' statement on line 1

Переводим: «ожидался блок с отступом после инструкции if в строке 1». Решение: сдвинуть вторую строку на четыре пробела.

Исключение возникает уже во время работы. Например, в списке два элемента, а мы просим третий:

items = ["кофе", "чай"]
print(items[2])
IndexError: list index out of range

Читать такое сообщение лучше снизу вверх: последняя строка называет тип ошибки и причину, строки выше показывают, где она случилась. Здесь индекс 2 вышел за пределы списка, потому что номера элементов 0 и 1.

Ошибки, которые можно предвидеть, перехватывают конструкцией try и except. Тогда вместо падения программа выполнит запасной вариант:

text = "сорок"
try:
    number = int(text)
except ValueError:
    print("Нужно число цифрами, а пришло:", text)
Нужно число цифрами, а пришло: сорок

Логические ошибки ловят иначе: выводят промежуточные значения через print() и сверяют с тем, что ожидали получить. Способ скучный, зато на старте он работает почти всегда.

Собираем основы в одну программу

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

def category_total(expenses, category):
    total = 0
    for item in expenses:
        if item["category"] == category:
            total += item["amount"]
    return total


expenses = [
    {"category": "еда", "amount": 650},
    {"category": "транспорт", "amount": 120},
    {"category": "еда", "amount": 1340},
    {"category": "кино", "amount": 900},
]

for name in ["еда", "транспорт", "кино"]:
    spent = category_total(expenses, name)
    mark = "много" if spent > 1000 else "норма"
    print(f"{name}: {spent} ₽ ({mark})")
еда: 1990 ₽ (много)
транспорт: 120 ₽ (норма)
кино: 900 ₽ (норма)

Разберём, где здесь каждое понятие:

  • алгоритм: для каждой категории пройти все расходы и сложить подходящие;
  • переменные и типы: total и spent хранят целые числа, названия категорий хранятся строками;
  • коллекции: список expenses, внутри которого словари с двумя ключами;
  • функция: category_total() считает сумму для любой категории;
  • цикл: два for: внутри функции по расходам и снаружи по категориям;
  • условия: if отбирает нужную категорию, а запись "много" if … else "норма" выбирает пометку в одну строку;
  • операторы: ==, > и +=, то есть «прибавить к тому, что уже есть».

В последней строке стоит f-строка: буква f перед кавычками позволяет подставлять переменные прямо в текст, подробнее об этом в статье про f-строки. Попробуйте добавить в список новую трату или категорию и посмотрите, как изменится вывод. Такие эксперименты учат быстрее, чем перечитывание теории.

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

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

  1. Выберите один язык и не меняйте его, пока не пройдёте все восемь понятий. Для старта подходят Python и JavaScript, почему именно они, объясняем в материале о языке Python.
  2. Поставьте интерпретатор с официального сайта python.org и запустите первую программу. Как это сделать, показано в статье про Hello World на Python.
  3. На каждое понятие решайте задачи, а не только читайте. Готовый набор от простых к сложным: 30 задач по Python для начинающих.
  4. Сохраняйте код в Git с первых недель: история правок пригодится и для отката, и для портфолио. Как это работает, объясняет статья «Git простыми словами».
  5. ООП оставьте на потом. Классы и объекты понятны, только когда функции и коллекции уже привычны. Когда дойдёте, начните с материала «ООП простыми словами».

Учебник на русском у Python есть свой: официальное руководство проходит те же темы в том же порядке и подходит как справочник к любому курсу.

Частые ошибки новичков

Эти ошибки касаются подхода к учёбе. Из-за них люди бросают учёбу чаще, чем из-за сложности самого материала.

  • Смотрят видео и не пишут код. После урока кажется, что всё понятно, но перед пустым файлом не получается ни строки. Решение: каждый пример из урока набирать руками и менять в нём хотя бы одно число.
  • Прыгают между языками. Неделя Python, неделя JavaScript, потом C++, потому что «он быстрее». Основы при этом не закрепляются ни в одном. Решение: один язык до конца базы, второй язык потом осваивается в разы быстрее.
  • Сразу берутся за большой проект. Свой мессенджер или игра на первом месяце почти всегда заканчиваются разочарованием. Решение: маленькие задачи на 10–30 строк, по одной на каждое понятие.
  • Копируют ошибку в поиск, не читая. Ответ часто уже в последней строке сообщения. Решение: прочитать её, перевести и найти строку, на которую указывает Python.
  • Просят нейросеть написать решение целиком. Код появляется, а навык нет. Решение: просить у ассистента объяснение ошибки или подсказку к следующему шагу, а сам код писать самому.

Где освоить основы программирования системно

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

КурсШколаСтоимость со скидкойВ рассрочкуДлитель­ностьОбзор курса от Checkroi
Алгоритмы и структуры данных
Перейти на сайт курса
SkillFactorySkillFactory78 840 ₽2190 ₽/мес.5 месяцевОбзор курса
Алгоритмы и структуры данных. Базовый курс
Перейти на сайт курса
GeekBrainsGeekBrains15 000 ₽417 ₽/мес.1 месяцОбзор курса
Алгоритмы и структуры данных на Python. Базовый курс
Перейти на сайт курса
GeekBrainsGeekBrains15 000 ₽417 ₽/мес.1 месяцОбзор курса
Алгоритмы и циклы
Перейти на сайт курса
FoxfordФоксфорд4200 ₽2690 ₽/мес.Обзор курса
Информатика и вычислительная техника
Перейти на сайт курса
ИПО — институт профессионального образованияИПО32 900 ₽2633 ₽/мес.512 часовОбзор курса

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

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

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

Что входит в основы программирования?

Восемь понятий: алгоритм, переменные, типы данных, операторы, условия, циклы, функции и коллекции (списки и словари). К ним добавляют умение читать сообщения об ошибках. Эти идеи одинаковы в Python, JavaScript, Java и других языках, меняется только запись.

С какого языка лучше изучать основы программирования?

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

Сколько времени нужно, чтобы освоить основы программирования?

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

Нужна ли математика для основ программирования?

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

Можно ли изучить основы программирования бесплатно?

Да. У Python есть официальное руководство на русском на docs.python.org, а для практики подойдут наборы задач для начинающих. Курс с наставником платный, зато в нём проверяют код и объясняют ошибки, а это ускоряет обучение.

Чем программирование отличается от кодинга?

В разговорной речи это синонимы. Иногда кодингом называют только набор кода, а программированием весь процесс: продумать алгоритм, написать код, найти и исправить ошибки.

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

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

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