Полный курс Python: от новичка до уверенного разработчика

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

1. Основы языка: переменные, типы данных и базовые операции ввода-вывода

Основы языка: переменные, типы данных и базовые операции ввода-вывода

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

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

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

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

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

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

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

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

Здесь мы создали две «коробки»:

  • Коробку с именем message, в которую положили текст "Привет, мир!".
  • Коробку с именем score, в которую положили число 100.
  • Важно понимать: знак = в программировании — это не равенство, как в математике. Это оператор присваивания. Он говорит компьютеру: «Возьми значение справа и положи его в переменную слева».

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

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

    * Имя может содержать: буквы (латиница), цифры и знак подчеркивания _. * Имя не может начинаться с цифры. 1st_place — ошибка, place_1 — верно. * Имя не должно содержать пробелов. Используйте подчеркивание для разделения слов. Этот стиль называется snake_case (змеиный регистр). * Регистр имеет значение. Score, score и SCORE — это три разные переменные.

    > Хорошее имя переменной отвечает на вопрос «Что внутри?». Имя x — плохое, потому что непонятно, что оно хранит. Имя user_age — отличное, так как сразу ясен смысл.

    Типы данных

    В реальной жизни мы различаем типы информации: мы не складываем слова с числами (нельзя к слову «яблоко» прибавить число 5). Python тоже различает данные по типам. Рассмотрим четыре основных типа, с которыми вы будете работать 90% времени.

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

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

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

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

    3. Строки (String или str)

    Строка — это любой текст. Чтобы компьютер понял, что перед ним текст, а не имя переменной или команда, мы заключаем его в кавычки. Можно использовать как одинарные ', так и двойные " кавычки — главное, чтобы они были парными.

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

    Самый простой тип данных, который может принимать только два значения: Истина (True) или Ложь (False). Обратите внимание, что в Python эти слова пишутся с большой буквы.

    Как узнать тип переменной?

    Python — язык с динамической типизацией. Это значит, что вам не нужно заранее сообщать компьютеру, какой тип данных будет лежать в переменной. Python сам определит это в момент присваивания. Если вы хотите проверить тип переменной, используйте команду type():

    Ввод и вывод данных

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

    Вывод данных: функция print()

    Мы уже встречали эту команду. Функция print() выводит информацию на экран (в консоль).

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

    Ввод данных: функция input()

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

    В скобках input() можно написать текст-подсказку, который увидит пользователь.

    Важная особенность input()

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

    Рассмотрим пример:

    Почему произойдет ошибка? Потому что переменная age содержит не число 25, а строку "25". А прибавлять число к строке нельзя.

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

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

    Исправим предыдущий пример:

    Чаще всего это записывают короче, в одну строку:

    Базовые операции

    Теперь, когда у нас есть переменные и типы данных, давайте посмотрим, что с ними можно делать.

    Арифметические операции

    С числами (int и float) можно выполнять стандартные математические действия:

    * + Сложение * - Вычитание Умножение * / Деление (результат всегда float, даже если делится нацело: 10 / 2 будет 5.0) * Возведение в степень (например, 2 3 — это 2 в кубе, то есть 8) * // Целочисленное деление (отбрасывает дробную часть: 10 // 3 будет 3) * % Остаток от деления (полезно для проверки на четность: 10 % 3 будет 1)

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

    Строки тоже можно «складывать». Это называется конкатенация.

    Также строки можно умножать на целое число. Это дублирует строку:

    Комментарии в коде

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

    Практический пример: Калькулятор площади

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

    Если вы запустите этот код, введете длину 5.5 и ширину 10, программа выдаст 55.0. Поздравляю, вы написали свою первую осмысленную программу на Python!

    Заключение

    Сегодня мы заложили фундамент вашего будущего мастерства. Вы узнали:

  • Что переменные — это именованные ячейки памяти.
  • Что данные бывают разных типов (int, float, str, bool).
  • Как общаться с пользователем через input() и print().
  • Почему важно следить за типами данных при вводе.
  • В следующей статье мы научим нашу программу принимать решения и ветвиться, используя условные операторы if и else. Практикуйтесь, экспериментируйте с кодом и не бойтесь ошибок — это лучшая часть обучения!

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

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

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

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

    Мы разберем четыре кита, на которых держится логика любого приложения:

  • Условные операторы (как научить программу говорить «Нет»).
  • Циклы (как заставить компьютер делать скучную работу за вас).
  • Списки (как хранить коллекции данных).
  • Словари (как создать собственную базу данных).
  • Условные операторы: Искусство выбора

    В жизни мы постоянно принимаем решения, основанные на условиях: «Если пойдет дождь, я возьму зонт, иначе пойду в кепке». В Python эта логика реализуется с помощью операторов if, elif и else.

    !Блок-схема работы условного оператора: выбор пути в зависимости от истинности условия.

    Конструкция if

    Самый простой вариант — это проверка одного условия. Обратите внимание на синтаксис: после условия обязательно ставится двоеточие :, а блок кода, который нужно выполнить, сдвигается вправо на 4 пробела (отступ).

    Отступы (Indentation) — это святая святых Python. В других языках используются скобки {}, но в Python именно отступы показывают, какие строки кода относятся к условию if. Если вы уберете отступ, Python выдаст ошибку IndentationError.

    Конструкция if-else

    Часто нам нужно предусмотреть альтернативный вариант развития событий.

    Обратите внимание на оператор сравнения ==. Один знак = — это присваивание (положить значение в переменную), а два знака == — это сравнение (равно ли значение?).

    Конструкция if-elif-else

    Если вариантов больше двух, используется elif (сокращение от else if — «иначе если»).

    Компьютер проверяет условия сверху вниз. Как только он находит первое истинное условие (например, score >= 75), он выполняет соответствующий блок кода и пропускает все остальные проверки в этой конструкции.

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

    Иногда нужно проверить сразу несколько условий. Для этого существуют операторы: * and (И) — истина, только если оба условия верны. * or (ИЛИ) — истина, если хотя бы одно условие верно. * not (НЕ) — переворачивает значение (делает ложь истиной и наоборот).

    Циклы: Сила повторения

    Представьте, что вам нужно вывести фразу «Я люблю Python» 100 раз. Копировать строку print 100 раз — плохая идея. Для повторения действий используются циклы.

    Цикл while (Пока)

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

    Осторожно: Если вы забудете изменить переменную count внутри цикла, условие count <= 5 всегда будет истинным, и программа зависнет в «бесконечном цикле». Чтобы прервать такую программу, обычно используют комбинацию клавиш Ctrl+C.

    Цикл for (Для)

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

    Для повторения действия раз используется функция range():

    Заметьте, что отсчет в программировании почти всегда начинается с нуля, а не с единицы. range(5) генерирует 5 чисел, начиная с 0 и заканчивая 4 (число 5 не включается).

    Управление циклом: break и continue

    * break — немедленно прерывает цикл и выходит из него. * continue — пропускает текущую итерацию и переходит к следующей.

    Списки: Коллекции данных

    До сих пор мы хранили одно значение в одной переменной. Но что, если нам нужно хранить список покупок, имена всех учеников в классе или температуру за каждый день месяца? Создавать переменные item1, item2, item3 неудобно. На помощь приходят списки (Lists).

    Список — это упорядоченная коллекция элементов. В Python списки создаются с помощью квадратных скобок [].

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

    Доступ к элементам

    Чтобы достать элемент из списка, мы обращаемся к нему по индексу (номеру).

    > Помните: первый элемент всегда имеет индекс 0.

    Изменение списков

    Списки можно менять (они мутабельны).

    Списки и циклы — лучшие друзья

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

    Здесь переменная guest по очереди принимает значение каждого элемента из списка guests.

    Словари: Ключ к данным

    Списки хороши, когда важен порядок. Но что, если мы хотим хранить информацию о человеке: имя, возраст, город? Искать возраст по номеру индекса person[1] неудобно — нужно помнить, что именно лежит под индексом 1.

    Для таких случаев существуют словари (Dictionaries). Это структура данных, где каждое значение имеет свое уникальное имя — ключ. Словари создаются с помощью фигурных скобок {}.

    Здесь "name", "age" и "city" — это ключи, а "Алексей", 25 и "Москва" — значения.

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

    Мы обращаемся к данным не по номеру, а по ключу:

    Практика: Простой менеджер задач

    Давайте объединим условия, циклы и списки, чтобы написать полезную программу — список дел (To-Do List).

    Разбор кода

  • Мы создали пустой список tasks.
  • Запустили бесконечный цикл while True, чтобы программа не закрывалась после одного действия.
  • Внутри цикла мы спрашиваем команду.
  • С помощью if-elif-else проверяем, что ввел пользователь.
  • Если выбрана команда "3", мы используем break, чтобы разорвать бесконечный цикл и завершить программу.
  • Заключение

    Поздравляю! Теперь ваши программы умеют думать (условия), работать без устали (циклы) и запоминать много информации (списки и словари). Это тот самый фундамент, на котором строятся сложные системы — от веб-сайтов до искусственного интеллекта.

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