Основы программирования на Python

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

1. Введение в Python: установка окружения, синтаксис и работа с переменными

Введение в Python: установка окружения, синтаксис и работа с переменными

Добро пожаловать в курс «Основы программирования на Python». Это первая статья, с которой начнется ваше погружение в мир разработки. Python сегодня — это один из самых популярных и востребованных языков программирования в мире. Его используют гиганты индустрии, такие как Google, NASA, Netflix и Spotify, для решения задач от веб-разработки до искусственного интеллекта.

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

Почему именно Python?

Python (читается как «Пайтон», хотя в рунете часто говорят «Питон») был создан Гвидо ван Россумом в начале 90-х годов. Главная философия языка — читаемость кода и простота синтаксиса. Программы на Python часто выглядят как обычные предложения на английском языке.

Основные преимущества:

* Низкий порог входа. Вам не нужно думать об управлении памятью или сложных системных процессах на старте. * Универсальность. На Python пишут сайты, анализируют данные, создают нейросети, автоматизируют рутину и даже делают игры. * Интерпретируемость. Python — это интерпретируемый язык. Это значит, что код выполняется строчка за строчкой специальной программой (интерпретатором), без необходимости предварительной компиляции всего файла в машинный код.

!Как работает интерпретатор: код преобразуется в действия мгновенно.

Установка окружения

Прежде чем писать код, нам нужно установить «переводчика», который объяснит компьютеру наши команды. Этим переводчиком является интерпретатор Python.

Шаг 1: Загрузка

  • Перейдите на официальный сайт python.org.
  • В разделе Downloads выберите версию для вашей операционной системы (Windows, macOS или Linux). Рекомендуется скачивать последнюю стабильную версию (на момент написания это ветка 3.x).
  • Шаг 2: Установка

    Для пользователей Windows: Запустите скачанный установочный файл. Самый важный момент: внизу окна установки обязательно поставьте галочку напротив пункта Add Python to PATH. Если этого не сделать, вам придется вручную настраивать системные переменные, чтобы запускать Python из командной строки.

    Для пользователей macOS: Обычно установщик делает все автоматически. Следуйте инструкциям на экране.

    Для пользователей Linux: Python часто уже предустановлен. Вы можете проверить это в терминале. Если нет — используйте пакетный менеджер вашего дистрибутива (например, sudo apt-get install python3).

    Шаг 3: Проверка установки

    Откройте командную строку (Terminal на macOS/Linux или PowerShell/CMD на Windows) и введите команду:

    Или, если у вас установлено несколько версий:

    Если вы увидели что-то вроде Python 3.10.4, поздравляю — окружение готово к работе!

    Ваша первая программа

    Традиционно изучение любого языка начинается с программы «Hello, World!». Мы не будем нарушать традиции.

    Python поставляется с простой средой разработки IDLE, но мы можем писать код в любом текстовом редакторе (Блокнот, VS Code, Sublime Text) и запускать его через консоль. Для начала попробуем интерактивный режим.

  • Откройте терминал (консоль).
  • Введите python (или python3) и нажмите Enter.
  • Вы увидите приглашение к вводу: >>>.
  • Введите следующую команду:

    Нажмите Enter. Система ответит вам:

    Разбор полетов

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

    Синтаксис Python: чистота — залог здоровья

    В большинстве языков (C++, Java, PHP) блоки кода выделяются фигурными скобками {}. В Python все иначе. Здесь структуру кода определяют отступы (пробелы).

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

    Пример правильной структуры (пока не вникайте в смысл слов if и else, смотрите на форму):

    Комментарии

    Код пишется не только для машин, но и для людей. Чтобы оставить заметку в коде, которая будет проигнорирована интерпретатором, используется символ решетки #.

    Переменные: коробки с данными

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

    В программировании переменная — это и есть такая подписанная коробка, в которой хранится какое-то значение.

    !Визуальная метафора переменных как контейнеров для хранения разных типов данных.

    Создание переменной

    В Python создание переменной происходит в момент присваивания ей значения. Для этого используется знак равенства =.

    Здесь мы создали три переменные:

  • user_name, в которую положили строку "Ivan".
  • age, в которую положили число 25.
  • height, в которую положили число 180.5.
  • В отличие от многих других языков, в Python не нужно заранее сообщать компьютеру, какой тип данных будет лежать в переменной (это называется динамическая типизация). Python сам поймет: если это число — он сохранит его как число, если текст — как текст.

    Правила именования переменных

    Чтобы ваш код был профессиональным, следуйте правилам:

  • Имя переменной может содержать буквы (a-z, A-Z), цифры (0-9) и знак подчеркивания (_).
  • Имя не может начинаться с цифры.
  • Имя не должно совпадать с зарезервированными словами Python (например, print, if, for).
  • В Python принято использовать стиль snake_case: слова пишутся маленькими буквами и разделяются подчеркиванием (например, my_favorite_color, а не myFavoriteColor).
  • Типы данных

    Хотя Python определяет типы автоматически, программист должен понимать, с чем он работает. Рассмотрим базовые типы:

    1. Целые числа (int)

    Это числа без дробной части: 1, 100, -50, 0. С ними можно производить математические операции.

    Допустим, мы хотим рассчитать площадь прямоугольника по формуле:

    Где — искомая площадь, — длина одной стороны, а — длина другой стороны.

    В коде это будет выглядеть так:

    2. Числа с плавающей точкой (float)

    Это дробные числа: 3.14, 2.5, -0.001. Разделителем всегда служит точка, а не запятая.

    Пример расчета длины окружности:

    Где — длина окружности, — математическая константа (примерно 3.14), — радиус окружности.

    Примечание: небольшая неточность в конце числа связана с особенностями хранения дробных чисел в памяти компьютера, это нормально.

    3. Строки (str)

    Это любой текст, заключенный в кавычки. Строки можно «складывать» (конкатенировать).

    4. Логический тип (bool)

    Имеет всего два значения: True (Истина) и False (Ложь). Они часто используются для проверки условий.

    Работа с типами данных

    Иногда нам нужно превратить один тип в другой. Например, если мы хотим сложить число и строку, Python выдаст ошибку, так как не знает, как сложить слово и цифру математически.

    Для этого существуют функции преобразования: * int() — превращает в целое число. * float() — превращает в дробное число. * str() — превращает в строку.

    Заключение

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

    * Python — интерпретируемый язык с простым синтаксисом. * Отступы в коде критически важны. * Переменные создаются динамически и хранят разные типы данных.

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

    2. Базовые типы данных и операции: числа, строки и логические значения

    Базовые типы данных и операции: числа, строки и логические значения

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

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

    Числа: математика внутри Python

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

    Целые числа (int)

    Тип int (от английского integer) включает в себя положительные и отрицательные числа без дробной части, а также ноль. Например: 42, -100, 0.

    Python поддерживает базовые арифметические операции, знакомые нам со школы:

    Числа с плавающей точкой (float)

    Тип float используется для представления дробных чисел. Важно помнить, что в программировании для отделения дробной части используется точка, а не запятая. Например: 3.14, 0.001, -5.5.

    Даже если число выглядит целым, но записано с точкой (например, 5.0), для Python это уже float.

    Особенности деления

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

    1. Обычное деление (/) Результатом всегда будет число с плавающей точкой (float), даже если числа делятся нацело.

    2. Целочисленное деление (//) Этот оператор отбрасывает дробную часть, оставляя только целое число. Округление всегда идет «вниз» (к меньшему целому).

    !Визуализация того, как оператор целочисленного деления отсекает дробную часть.

    3. Остаток от деления (%) Очень полезный оператор, который часто используется для проверки четности чисел (если остаток от деления на 2 равен 0 — число четное) или для циклических операций.

    Математически это можно записать так:

    Где — остаток от деления, — делимое, — делитель, а — результат целочисленного деления.

    Пример в коде:

    Возведение в степень

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

    Формула возведения в степень:

    Где — результат, — основание степени, — показатель степени.

    Строки: работа с текстом

    Строки (str) — это последовательности символов. Мы уже знаем, что их нужно заключать в кавычки. Но возможности строк в Python выходят далеко за рамки простого вывода текста.

    Кавычки: одинарные или двойные?

    Python позволяет использовать и те, и другие. Главное правило: начал с одинарной — закончи одинарной.

    Операции со строками

    Удивительно, но строки тоже можно «складывать» и «умножать».

    Конкатенация (сложение) Объединяет две строки в одну.

    Дублирование (умножение) Повторяет строку указанное количество раз.

    Индексы: доступ к символам

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

    !Схема индексации строки: прямая нумерация от 0 и обратная от -1.

    f-строки: современное форматирование

    Начиная с версии Python 3.6, появился удобный способ вставлять значения переменных прямо внутрь строки. Для этого перед кавычками ставится буква f, а переменные пишутся в фигурных скобках {}.

    Логические значения: искусство говорить «Да» или «Нет»

    Тип данных bool (Boolean) назван в честь математика Джорджа Буля. Он может принимать только два значения: * True (Истина) * False (Ложь)

    Эти значения являются результатом операций сравнения. Они жизненно необходимы, когда программе нужно принять решение (например, «если пользователь совершеннолетний, разрешить вход»).

    Операторы сравнения

    | Оператор | Описание | Пример (результат True) | | :--- | :--- | :--- | | == | Равно | 5 == 5 | | != | Не равно | 5 != 3 | | > | Больше | 10 > 2 | | < | Меньше | 1 < 5 | | >= | Больше или равно | 5 >= 5 | | <= | Меньше или равно | 3 <= 4 |

    Обратите внимание: один знак равенства = — это присваивание значения переменной, а два знака == — это проверка на равенство.

    Логические операторы

    Иногда нам нужно проверить сразу несколько условий. Для этого используются операторы and, or и not.

    1. Оператор and (И) Возвращает True, только если оба условия истинны.

    2. Оператор or (ИЛИ) Возвращает True, если хотя бы одно из условий истинно.

    3. Оператор not (НЕ) Инвертирует значение: True превращает в False и наоборот.

    Преобразование типов (Type Casting)

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

    Основные функции

    * int(): пытается превратить значение в целое число. Отбрасывает дробную часть. * float(): превращает значение в число с плавающей точкой. * str(): превращает что угодно в строку. * bool(): превращает значение в логическое (0 и пустая строка станут False, всё остальное — True).

    Примеры:

    Заключение

    Мы разобрали строительные блоки данных в Python. Теперь вы знаете:

  • Как работать с целыми и дробными числами, и почему // отличается от /.
  • Как управлять строками, склеивать их и использовать f-строки для красивого вывода.
  • Как работает логика True и False, которая станет основой для условий в ваших будущих программах.
  • В следующей статье мы перейдем к одной из самых захватывающих тем — управляющим конструкциям. Мы научим программу принимать решения и выполнять действия в зависимости от условий.

    3. Управление потоком выполнения: условные операторы if-else и циклы for, while

    Управление потоком выполнения: условные операторы if-else и циклы for, while

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

    Но реальная жизнь не линейна. Мы постоянно принимаем решения («Если пойдет дождь, я возьму зонт, иначе — надену кепку») и повторяем действия («Пока не выучу урок, буду читать книгу»). В программировании за эту логику отвечают управляющие конструкции.

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

    Условные операторы: искусство выбора

    Основа любого интеллекта — способность анализировать ситуацию и действовать соответственно. В Python для этого используется конструкция if (если).

    Простой выбор: if

    Синтаксис условия в Python предельно прост и похож на обычный английский язык. Ключевой момент, о котором мы говорили в первой статье: отступы. Блок кода, который должен выполниться при истинности условия, должен быть сдвинут вправо (обычно на 4 пробела).

    В этом примере интерпретатор проверяет условие age >= 18. Поскольку переменная age равна 20, условие возвращает True (Истина), и код внутри блока выполняется.

    !Схема работы условного оператора: код выполняется только при соблюдении условия.

    Альтернативный путь: else

    Что делать, если условие ложно? Для этого существует оператор else (иначе). Он не требует условия, так как срабатывает во всех остальных случаях.

    Здесь программа видит, что weather не равно "sunny", пропускает первый блок и выполняет блок else.

    Множественный выбор: elif

    Жизнь редко бывает черно-белой. Часто у нас больше двух вариантов развития событий. Для таких случаев используется elif — сокращение от else if (иначе если).

    Представим, что мы пишем программу для определения категории боксера по весу. Допустим, у нас есть простая формула расчета индекса силы удара (условная), зависящая от массы:

    Где — сила удара, — масса боксера, — ускорение удара.

    Но прежде чем считать силу, нужно понять категорию:

    Python проверяет условия по порядку сверху вниз. Как только он находит первое истинное условие (в данном случае weight < 91 сработает, если вес 75, так как проверка < 75 вернет False), он выполняет соответствующий блок и выходит из всей конструкции. Остальные проверки игнорируются.

    Вложенные условия

    Внутри одного блока if может находиться другой if. Это называется вложенностью.

    Обратите внимание на «лесенку» из отступов. Чем глубже вложенность, тем сложнее читать код, поэтому злоупотреблять этим не стоит.

    Циклы: автоматизация повторений

    Одно из главных преимуществ компьютера перед человеком — он не устает делать одно и то же миллионы раз. Циклы позволяют выполнять блок кода многократно.

    Цикл while (Пока)

    Цикл while работает до тех пор, пока условие остается истинным. Это похоже на повторяющийся if.

    Важный момент: внутри цикла while вы обязательно должны изменять переменную, которая проверяется в условии (в нашем случае apples). Если этого не сделать, условие всегда будет True, и программа попадет в бесконечный цикл. Она зависнет и будет работать, пока вы принудительно её не остановите.

    Цикл for (Для)

    Если while используется, когда мы не знаем точного количества повторений (например, «читать файл, пока не кончатся строки»), то for идеально подходит для перебора последовательностей.

    В Python цикл for устроен очень элегантно. Он берет элементы из набора по одному и выполняет с ними действия.

    Перебор строки: Помните, что строка — это последовательность символов? Мы можем перебрать её по буквам.

    Переменная letter (можно назвать как угодно) на каждом шаге цикла автоматически принимает значение следующего символа строки.

    Функция range()

    Чаще всего нам нужно выполнить цикл определенное количество раз, например, 10 или 100. Для генерации последовательности чисел используется функция range().

    У неё есть три варианта использования:

  • range(stop) — от 0 до stop - 1.
  • range(start, stop) — от start до stop - 1.
  • range(start, stop, step) — от start до stop - 1 с шагом step.
  • Пример математической задачи: найдем сумму всех чисел от 1 до 100. В математике сумма арифметической прогрессии вычисляется по формуле:

    Где — сумма первых членов, — количество слагаемых, — первое число, — последнее число.

    Проверим эту формулу с помощью цикла:

    !Визуализация работы цикла for: последовательная обработка каждого элемента из набора.

    Управление внутри цикла

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

    break (Прервать)

    Оператор break досрочно завершает работу цикла. Это как стоп-кран в поезде.

    continue (Продолжить)

    Оператор continue завершает текущую итерацию (повторение) и переходит к следующей, не выполняя код, который написан ниже него.

    Допустим, мы хотим вывести только нечетные числа:

    Практический пример: Банковский вклад

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

    Формула сложного процента:

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

    Однако, мы реализуем это через цикл, чтобы видеть рост вклада каждый год.

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

    Заключение

    Сегодня вы освоили инструменты, которые делают код «живым».

    * Условные операторы (if, elif, else) позволяют программе принимать решения. * Циклы (while, for) позволяют автоматизировать повторения. * Операторы break и continue дают тонкий контроль над выполнением циклов.

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

    4. Структуры данных: работа со списками, кортежами и словарями

    Структуры данных: работа со списками, кортежами и словарями

    В предыдущих статьях мы научились хранить данные в переменных. Мы создавали «коробки» для чисел, строк и логических значений. Но что делать, если данных становится много? Представьте, что вам нужно сохранить список покупок из 50 пунктов или оценки всех учеников в классе. Создавать 50 отдельных переменных (item1, item2, item3...) — это неудобно, неэффективно и делает код нечитаемым.

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

    Сегодня мы разберем, чем они отличаются, когда их использовать и как с их помощью писать мощные программы.

    Списки (Lists): Универсальный контейнер

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

    !Список как поезд с нумерованными вагонами, хранящими разные типы данных

    Создание списка

    Списки создаются с помощью квадратных скобок []. Элементы внутри разделяются запятыми.

    Индексация: Доступ к элементам

    Как и в строках, нумерация элементов в списках начинается с нуля. Чтобы достать элемент, мы указываем его индекс в квадратных скобках.

    Изменяемость (Mutability)

    Главная особенность списков — они изменяемы. Вы можете заменить содержимое любого «вагона» в любой момент.

    Методы работы со списками

    Списки обладают встроенными инструментами (методами) для управления данными:

  • append() — добавляет элемент в конец списка.
  • remove() — удаляет первый найденный элемент по значению.
  • pop() — удаляет элемент по индексу и возвращает его (по умолчанию последний).
  • len() — функция, возвращающая длину списка.
  • Математика со списками

    Списки часто используются для хранения числовых последовательностей. Давайте рассчитаем среднее арифметическое оценок ученика.

    Формула среднего арифметического:

    Где — среднее арифметическое (искомое значение), — количество элементов в списке, — знак суммы, — каждый отдельный элемент списка (оценка).

    Реализация на Python:

    Кортежи (Tuples): Защищенные списки

    Кортеж очень похож на список. Это тоже упорядоченная последовательность элементов. Главное отличие: кортежи неизменяемы (immutable). После создания вы не можете добавить, удалить или изменить элементы кортежа.

    Зачем нужны ограничения?

  • Защита данных. Если вы передаете в программу координаты GPS или настройки сервера, вы хотите быть уверены, что никто случайно их не изменит.
  • Производительность. Кортежи занимают меньше памяти и работают чуть быстрее списков.
  • Синтаксис

    Кортежи создаются с помощью круглых скобок ().

    Распаковка кортежей

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

    Словари (Dictionaries): Ключ к успеху

    Если списки используют числовые индексы (0, 1, 2...) для доступа к данным, то словари используют ключи.

    Словарь — это неупорядоченная коллекция пар «Ключ — Значение». Это похоже на настоящий бумажный словарь: чтобы найти перевод (значение), вы ищете слово (ключ). Или на телефонную книгу: чтобы найти номер (значение), вы ищете имя (ключ).

    !Визуализация словаря как системы хранения пар Ключ-Значение

    Создание словаря

    Словари создаются с помощью фигурных скобок {}. Пары разделяются двоеточием.

    Работа со словарем

    Чтобы получить значение, мы обращаемся к словарю по ключу.

    Добавление и изменение данных

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

    Когда использовать словарь?

    Словари идеально подходят для описания объектов с разными характеристиками. Например, товар в интернет-магазине:

    Вложенные структуры

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

    Пример: Список студентов, где каждый студент — это словарь.

    Итерация по структурам данных

    В прошлой статье мы изучили циклы. Они идеально сочетаются со структурами данных.

    Перебор списка

    Перебор словаря

    При переборе словаря цикл for по умолчанию идет по ключам. Чтобы получить и ключи, и значения, используют метод .items().

    Заключение

    Сегодня вы получили в свой арсенал мощнейшие инструменты Python:

    * Списки ([]) — для упорядоченных коллекций, которые нужно менять. * Кортежи (()) — для неизменяемых наборов данных. * Словари ({}) — для хранения структурированной информации по ключам.

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

    5. Функции и модули: создание собственных подпрограмм и импорт библиотек

    Функции и модули: создание собственных подпрограмм и импорт библиотек

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

    В программировании существует «золотое правило» — DRY (Don't Repeat Yourself — Не повторяйся). Если вы копируете код, вы создаете почву для ошибок. Если логика изменится, вам придется искать и исправлять её во всех местах, где вы вставили этот кусок.

    Сегодня мы научимся упаковывать код в функции и организовывать его в модули. Это превратит ваш код из «простыни» текста в набор аккуратных, переиспользуемых инструментов.

    Что такое функция?

    Представьте, что вы готовите сложное блюдо. В рецепте может быть написано: «Приготовьте соус Бешамель». Там не расписывают каждый раз заново, как топить масло и добавлять муку, потому что «Соус Бешамель» — это отдельный, понятный подпроцесс. Вы знаете, что на входе нужны ингредиенты, а на выходе получится соус.

    В Python функция — это именованный блок кода, который выполняет определенную задачу. Мы уже пользовались встроенными функциями: print(), len(), type(). Теперь пришло время создавать свои.

    !Функция принимает аргументы, обрабатывает их и возвращает результат.

    Анатомия функции

    Создание функции начинается с ключевого слова def (от английского define — определить).

    Этот код только создает функцию, но не выполняет её. Чтобы код внутри сработал, функцию нужно вызвать по имени:

    Аргументы: передача данных внутрь

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

    Давайте напишем функцию, которая приветствует конкретного человека:

    Здесь name — это переменная, которая существует только внутри функции и принимает то значение, которое мы передали при вызове.

    Возврат значения: return

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

    Для этого используется ключевое слово return.

    Рассмотрим пример из физики. Допустим, нам нужно рассчитать кинетическую энергию тела. Формула выглядит так:

    Где — кинетическая энергия, — масса тела, — скорость тела.

    Реализуем это в коде:

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

    Область видимости переменных (Scope)

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

    Переменные, созданные вне функций (в основном теле программы), называются глобальными. Функции могут их читать, но изменять их внутри функции без специальной команды global (которую новичкам лучше избегать) не рекомендуется.

    Модули: батарейки в комплекте

    Python часто называют языком с девизом «Batteries Included» (Батарейки в комплекте). Это значит, что вместе с языком устанавливается огромная Стандартная библиотека. Это набор готовых модулей для решения тысяч задач: от математики и работы с файлами до создания веб-серверов.

    Модуль — это просто файл с расширением .py, который содержит функции и переменные. Чтобы использовать модуль, его нужно импортировать с помощью команды import.

    Математический модуль math

    Хотя Python умеет складывать и умножать, для более сложных операций (синусы, корни, логарифмы) нужен модуль math.

    Например, рассчитаем гипотенузу прямоугольного треугольника по теореме Пифагора:

    Где — длина гипотенузы, и — длины катетов.

    Модуль random

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

    Варианты импорта

    Иногда писать название модуля каждый раз (например, math.sqrt, math.pi, math.sin) слишком долго. Python позволяет импортировать конкретные функции из модуля.

    Также можно давать модулям псевдонимы (короткие имена) для удобства:

    Создание собственных модулей

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

    !Главный файл программы импортирует функции из вспомогательных файлов-модулей.

    Практика

    Представьте, что у вас есть файл utils.py (инструменты), где вы храните полезные функции:

    Файл utils.py:

    Теперь в вашем основном файле main.py, который лежит в той же папке, вы можете использовать эти функции:

    Файл main.py:

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

    Аргументы по умолчанию и именованные аргументы

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

    В первом случае переменная message приняла значение "Привет" автоматически.

    Также аргументы можно передавать не по порядку, а по имени:

    Заключение

    Функции и модули — это фундамент профессиональной разработки. Они позволяют:

  • Не повторять код (принцип DRY).
  • Структурировать программу, разбивая сложную задачу на маленькие подзадачи.
  • Использовать чужой опыт, подключая стандартные и сторонние библиотеки.
  • Теперь вы умеете не только писать линейные скрипты, но и конструировать сложные системы из готовых блоков. В следующих уроках мы углубимся в работу с файловой системой, чтобы наши программы могли сохранять результаты своей работы на диск.