Python-разработчик: с нуля до уровня Middle

Этот курс поможет вам пройти путь от изучения базового синтаксиса до создания сложных микросервисных архитектур. Вы освоите основы программирования, ООП, работу с базами данных и асинхронность, что позволит вам уверенно претендовать на позицию Middle-разработчика [skillfactory.ru](https://skillfactory.ru/python-developer-pro) [otus.ru](https://otus.ru/lessons/python-specialization/).

1. Основы Python: синтаксис, базовые типы данных и управляющие конструкции

Основы Python: синтаксис, базовые типы данных и управляющие конструкции

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

Философия и базовый синтаксис

В отличие от языков C++ или Java, где блоки кода выделяются фигурными скобками, Python использует отступы (пробелы или табуляцию). Это принуждает разработчиков писать визуально чистый и структурированный код.

> «Программы должны писаться для людей, которые будут их читать, и лишь во вторую очередь — для машин, которые будут их выполнять.» > > Гарольд Абельсон

Отступ в Python — это не просто форматирование, это строгая часть синтаксиса. Если поставить пробел там, где он не нужен, программа выдаст ошибку. Стандартный отступ составляет ровно четыре пробела.

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

Для создания переменных в Python не нужно заранее объявлять их тип. Язык использует динамическую типизацию — тип данных определяется автоматически в момент присваивания значения.

Правила именования переменных: * Имя должно начинаться с буквы или символа подчеркивания * Имя не может начинаться с цифры * Допускается использование только латинских букв, цифр и подчеркиваний * Регистр имеет значение: Age и age — это две абсолютно разные переменные

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

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

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

| Тип данных | Название | Описание | Пример в коде | | --- | --- | --- | --- | | int | Целое число | Любые целые числа без дробной части, как положительные, так и отрицательные | 10, -42, 0 | | float | Число с плавающей точкой | Числа, имеющие дробную часть | 3.14, -0.001, 2.0 | | str | Строка | Текстовая информация, заключенная в одинарные или двойные кавычки | "Привет", 'Python' | | bool | Логический тип | Принимает только два значения: истина или ложь | True, False |

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

В первом случае интерпретатор сложил два числа математически. Во втором случае он выполнил конкатенацию — склеивание двух текстовых строк. Если на банковском счете клиента лежит 1000 руб., а система ошибочно обработает это как строку и попытается «прибавить» бонусные 500 руб., баланс превратится в бессмысленное значение «1000500» вместо 1500 руб.

Математические операции и выражения

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

Основные математические операторы: * Сложение и вычитание: , Умножение и классическое деление: , (результат деления всегда имеет тип float) * Целочисленное деление: (отбрасывает дробную часть) * Остаток от деления: Возведение в степень:

Рассмотрим расчет площади прямоугольника. Формула выглядит так: , где — площадь, — длина, — ширина.

Если длина комнаты составляет 5 метров, а ширина — 4 метра, то площадь будет равна 20 квадратным метрам. В коде это запишется элементарно: area = 5 * 4. Если нам нужно узнать, сколько полных недель в 100 днях, мы используем целочисленное деление: 100 // 7, что даст результат 14.

Управляющие конструкции: ветвления

Программы редко выполняются строго линейно от первой до последней строки. Чаще всего алгоритм должен принимать решения в зависимости от текущих условий. Для этого используются конструкции if, elif (сокращение от else if) и else.

Логика работы ветвлений строится на операторах сравнения: * Больше или меньше: , * Больше или равно, меньше или равно: , * Равно: (обратите внимание, два знака равенства, так как один знак используется для присваивания) * Не равно: (в коде записывается как !=)

В этом примере система проверяет сумму покупки. Если клиент купил товары на 1500 руб., первое условие () выдаст False. Интерпретатор перейдет ко второму условию (), которое вернет True. Переменная discount получит значение 5, и программа выведет сообщение о пятипроцентной скидке.

Управляющие конструкции: циклы

Циклы позволяют выполнять один и тот же блок кода многократно. Это избавляет разработчика от необходимости копировать строки и делает программы масштабируемыми. В Python есть два основных вида циклов: while и for.

Цикл while

Цикл while (пока) выполняется до тех пор, пока истинно заданное условие. Он идеально подходит для ситуаций, когда точное количество повторений заранее неизвестно.

Представим, что у нас есть 1000 руб., и мы каждый месяц откладываем по 100 руб., чтобы накопить 1500 руб. Цикл проверит условие: 1000 меньше 1500? Да. Добавит 100 руб. Баланс станет 1100 руб. Процесс повторится 5 раз, пока баланс не достигнет 1500 руб. В итоге программа сообщит, что потребовалось 5 месяцев.

Цикл for

Цикл for используется для перебора элементов в заранее известной последовательности (например, в строке текста, списке или диапазоне чисел).

Для генерации числовых последовательностей часто применяется встроенная функция range().

Функция range(1, 4) создает последовательность чисел от 1 до 3 (последнее число не включается). Программа трижды выполнит команду print, подставляя вместо переменной i значения 1, 2 и 3. Если маркетологу нужно отправить 10 000 писем, ему не придется писать 10 000 строк кода — достаточно изменить параметры функции на range(1, 10001).

Взаимодействие с пользователем

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

Если пользователь введет число 20, функция input() вернет строку "20". Чтобы использовать это значение в математических операциях или сравнениях, его необходимо преобразовать в целое число с помощью функции int(). Без этого преобразования попытка сравнить строку "20" с числом 18 приведет к ошибке, так как интерпретатор не умеет сравнивать текст с числами напрямую.

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