Python-разработчик с нуля: практический курс для Junior-специалиста

Курс разработан специально для новичков и пошагово обучает программированию на Python без сложного ИТ-жаргона. Вы освоите написание кода, работу с базами данных, Git и Docker, создавая реальные проекты для своего первого портфолио. Практические задания помогут вам уверенно сдать экзамены и подготовиться к работе junior-разработчиком.

1. Основы Python для новичков

Основы Python для новичков

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

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

Как Python понимает нас?

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

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

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

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

В других языках программирования для группировки команд часто используются фигурные скобки {}. В Python для этого используются обычные пробелы (по стандарту — 4 пробела). Это делает код визуально чистым и заставляет программистов писать аккуратно.

Кроме того, в коде часто оставляют комментарии — текстовые заметки для себя или других программистов. Интерпретатор их полностью игнорирует. В Python комментарии начинаются с символа решетки #.

Переменные: коробки для хранения данных

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

Переменная — это именованная область памяти компьютера.

Простыми словами, переменную можно представить как обычную картонную коробку. Вы берете пустую коробку, пишете на ней маркером название (например, user_age), кладете внутрь число 25 и закрываете. Теперь, когда программе понадобится возраст пользователя, она найдет коробку с надписью user_age и достанет оттуда значение.

!Переменные как коробки для хранения данных

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

Важное правило: имя переменной должно отражать ее суть. Назвать переменную x или a — плохая идея, потому что через неделю вы забудете, что там хранится. Названия client_email или total_price гораздо лучше.

Базовые типы данных

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

Давайте рассмотрим четыре самых главных типа, с которыми вы будете работать 90% времени:

| Название типа | Обозначение в коде | Что это такое | Пример | | :--- | :--- | :--- | :--- | | Целое число | int (integer) | Обычные числа без дробной части. Используются для счета. | 10, -5, 1000 | | Число с плавающей точкой | float | Дробные числа. Обратите внимание: в программировании дроби отделяются точкой, а не запятой. | 3.14, -0.5, 99.99 | | Строка | str (string) | Любой текст. Строки всегда должны быть заключены в кавычки (одинарные или двойные). | "Привет", 'Python', "123" | | Логический тип | bool (boolean) | Может принимать только два значения: Истина или Ложь. Пишутся с большой буквы. | True, False |

Обратите внимание на строку "123". Хотя внутри написаны цифры, из-за кавычек Python воспринимает это как текст. Если вы попытаетесь сложить число 10 и строку "123", программа выдаст ошибку, потому что нельзя складывать математическое число и текст.

Общение с программой: ввод и вывод

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

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

Для получения данных от пользователя используется команда input() (от английского input — ввод). Когда программа доходит до этой команды, она останавливается и ждет, пока пользователь напечатает что-нибудь на клавиатуре и нажмет Enter.

Форматированные строки (f-строки)

Выводить текст отдельными кусками неудобно. Гораздо приятнее встроить значение переменной прямо внутрь текста. Для этого в Python придумали f-строки.

Вы просто ставите английскую букву f перед кавычками, а имена переменных пишете внутри текста в фигурных скобках {}.

Преобразование типов

Есть один важный нюанс, на котором спотыкаются все новички. Команда input() всегда возвращает текст (строку, str). Даже если пользователь ввел цифру 5, Python сохранит ее как текст "5".

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

Логика и принятие решений

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

Главный условный оператор — это if (если). Он проверяет какое-то условие. Если условие верно (True), то выполняется определенный блок кода. Если ложно (False) — код пропускается.

> Представьте фейсконтроль на входе в клуб. Охранник смотрит в паспорт. Если возраст посетителя больше или равен 18 годам (), он открывает дверь. Иначе — отправляет домой.

В коде это выглядит так:

Обратите внимание на синтаксис:

  • После условия обязательно ставится двоеточие :.
  • Команды, которые должны выполниться при выполнении условия, пишутся с отступом (4 пробела). Именно так Python понимает, где заканчивается условие и продолжается основная программа (строка print("Проверка завершена.") выполнится в любом случае, так как у нее нет отступа).
  • Если вариантов развития событий больше двух, используется оператор elif (сокращение от else if — иначе если).

    Практика: Умный калькулятор чаевых

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

    Наша программа должна:

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

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

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