Python для начинающих: дорожная карта в 2023 году
Полноценный курс Python для начинающих, который станет прекрасным самоучителем. Делаем начало программирования на Python лёгким.
34К открытий40К показов
Разберем обучение Python с нуля на примере дорожной карты, которую мы подготовили совместно с онлайн-университетом Skypro. Данная статья — это полноценный гайд разработчика на Python с нуля до Junior. Он подойдет и тем, кто уже начал изучение, и тем, кто только задумывается о программировании. Если же сомневаетесь в своих силах — обратите внимание на курс «Python-разработчик» от Skypro.
- Основы Python
- Синтаксис Python
- Продвинутый Python
- Популярные библиотеки и фреймворки Python — 2023
- Дополнительные материалы
- Где и как изучать Python?
Основы Python
Установка Python
Для начала перейдите на официальный сайт Python и загрузите последнюю версию Python для Windows, Linux, MacOS или другой операционной системы.
Как установить Python на Windows
Выберите на сайте Python для Windows, скачайте и запустите загруженный файл. Если у вас на компьютере установлена более ранняя версия языка Python 2 — просто удалите ее и скачайте Python 3.
Выберите путь и установите программу:
Проверьте, что всё работает:
- запустите cmd;
- введите python;
- если всё хорошо, командная строка выведет версию языка.
По умолчанию будут установлены:
- Интегрированная среда разработки IDLE.
- Документация.
- Менеджер пакетов pip.
- Стандартный набор тестов.
- Python Launcher.
Как установить Python на Linux
Для большинства сборок Linux Python идет из коробки. Проверить это можно так — откройте окно терминала и выполните команды:
- python — version;
- python2 — version;
- python3 — version.
Если по какой-либо причине на вашей системе стоит старая версия, вы можете самостоятельно скомпилировать последнюю версию Python.
Как установить Python на MacOS
Python также входит в сборку MacOS, и его можно запустить через терминал. Если же вы хотите установить самую последнюю версию — она доступна по ссылке.
Рабочее окружение
Обучение языку Python начинается с настройки рабочего окружения.
Среды разработки Python
Вот лишь несколько наиболее популярных Python IDE:
- PyCharm — это IDE, разработанная компанией JetBrains. Она предоставляет интегрированную среду для разработки Python-приложений, включая поддержку Django, Flask и других фреймворков. PyCharm имеет богатый набор функций, включая отладчик, инструменты для анализа кода и удобный интерфейс.
- Visual Studio Code — это легкий, быстрый и невероятно гибкий редактор кода, доступный на всех платформах. Отличный выбор для программирования на Python. Многофункциональная IDE включает в себя интегрированный отладчик, рефакторинг, автодополнение кода, etc.
- Spyder — IDE, которая является частью научно-вычислительной среды Anaconda. Есть множество инструментов для работы с научными вычислениями, включая визуализацию данных, анализ и т. д. Spyder имеет встроенную консоль IPython, которая облегчает отладку и выполнение кода.
- Sublime Text — легкий редактор кода, который может быть расширен с помощью плагинов и расширений для поддержки Python. Простой интерфейс, автодополнение кода и другие полезные функции.
- Atom — этот простой на первый взгляд редактор обладает богатым функционалом. Данная среда написана разработчиками GitHub с использованием Electron — фреймворка для создания кросс-платформенных десктопных приложений средствами HTML, CSS и JavaScript.
Виртуальное окружение Python
Вы можете столкнуться с тем, что вам захочется поэкспериментировать с библиотеками или модулями. Чтобы не засорять рабочее окружение, вы будете создавать отдельный проект со своими модулями под каждую задачу.
ПО для работы с виртуальным окружением можно разделить на то, что входит в стандартную библиотеку Python, и то, что не входит в нее. Наиболее популярные инструменты:
- Virtualenv — один из самых популярных инструментов для создания виртуальных окружений. Прост в установке и использовании.
- Pyenv — тулза для изоляции версий Python. pyenv. Полезен, когда на одной машине нужно сразу несколько версий интерпретатора для тестирования.
- Virtualenvwrapper — обертка для virtualenv, позволяющая хранить все изолированные окружения и управлять ими.
- Venv — входит в стандартную библиотеку Python. Появился в версии Python 3 и по функционалу похож на virtualenv.
Git
Обучение языку Python с нуля включает также изучение систем контроля версий — VCS. Именно они позволяют отслеживать и фиксировать любые изменения в коде: вы можете восстановить код в случае сбоя или откатить до более ранних версий.
Git — самая популярная VCS и мастхэв-инструмент для взаимодействия нескольких разработчиков на одном проекте. Подробнее о данной VCS вы можете почитать в нашем руководстве по командной разработке с Git.
HTTP-протоколы
HTTP-протоколы в Python-разработке используются для создания веб-приложений и веб-сервисов, которые могут обмениваться данными с пользователем.
Для работы с HTTP-протоколами в Python используется стандартная библиотека urllib, которая предоставляет функции для отправки HTTP-запросов и обработки ответов.
Также для работы с HTTP-протоколами можно использовать более специализированные библиотеки, такие как requests или aiohttp:
- Библиотека requests облегчает отправку HTTP-запросов и обработку ответов, предоставляя более высокоуровневый интерфейс для работы с протоколом. Она позволяет создавать сеансы, работать с куками, заголовками и параметрами запроса, а также обрабатывать различные типы ответов.
- Библиотека aiohttp предоставляет асинхронный интерфейс для работы с HTTP-протоколами, что позволяет создавать более производительные и масштабируемые приложения. С ней можно использовать asyncio для создания событийных циклов, работать с потоками и обрабатывать различные типы запросов/ответов.
Знание HTTP-протоколов важно для разработчиков на Python, так как это позволяет им создавать эффективные и безопасные веб-приложения.
Базы данных
Даже начинающий Python-разработчик должен быть в курсе баз данных: а именно знать, что это такое и как с ними работать.
Одной из главных особенностей использования баз данных в Python является наличие множества библиотек, позволяющих взаимодействовать с различными типами СУБД. Вот лишь некоторые инструменты для работы с базами данных в Python:
- SQLAlchemy.
- Django ORM.
- Peewee.
- Pony ORM.
Разработчик может выбирать тот инструмент, который лучше всего подходит в конкретной ситуации.
Например, SQLAlchemy предоставляет возможность создания SQL-запросов с помощью объектов Python, что позволяет создавать сложные запросы и обращаться к базам данных, используя ORM.
Django ORM является частью веб-фреймворка Django и предоставляет более простой интерфейс для работы с БД, не требуя написания SQL-запросов вручную.
Кроме того, Python поддерживает работу с базами данных NoSQL, такими как MongoDB и Redis, что может быть полезно для работы с большими объемами данных и их обработки в режиме реального времени. Библиотеки для работы с такими БД также существуют и могут быть найдены в PyPI.
Синтаксис Python
Синтаксис Python простой и легкочитаемый, из-за чего данный язык может похвастаться низким порогом входа. Именно поэтому Python преобладает в программах онлайн- и офлайн-обучения.
Типы данных
Python поддерживает различные типы данных, включая:
- Числовые типы: целые числа (
int
), числа с плавающей точкой (float
), комплексные числа (complex
). - Строки: последовательности символов, определенных в кавычках (
str
). - Булевы значения:
TRUE
иFALSE
(bool
). - Списки: упорядоченные изменяемые коллекции объектов (
list
). - Кортежи: упорядоченные неизменяемые коллекции объектов (
tuple
). - Множества: неупорядоченные коллекции уникальных элементов (
set
). - Словари: неупорядоченные изменяемые коллекции пар «ключ — значение» (
dict
).
Одной из ключевых особенностей типов данных в Python является то, что переменные не требуют объявления типа явным образом. Тип переменной определяется автоматически во время выполнения программы. Кроме того, Python также поддерживает динамическую типизацию: это означает, что переменные могут изменять свой тип во время выполнения программы.
Операторы и приоритетность операторов
Операторы Python делятся:
- На арифметические операторы.
- Операторы сравнения.
- Операторы присваивания.
- Логические операторы.
- Операторы принадлежности.
- Операторы тождественности.
- Битовые операторы.
Операторы сравнения, арифметические, условные операторы и циклы имеют стандартный синтаксис, используемый во многих других языках программирования. Подробнее об операторах Python на примерах вы можете узнать из данного видео.
Кроме того, Пайтон разработчик с нуля должен понимать, как работает приоритетность операторов. В выражении интерпретатор Python выполняет операторы с более высоким уровнем приоритета первыми. И за исключением оператора возведения в степень (**
) они выполняются слева направо.
Следующая таблица демонстрирует приоритетность — самые приоритетные операции вверху, внизу — с низким приоритетом:
Переменные
Переменные предназначены для хранения данных. Название переменной в Python должно начинаться с алфавитного символа или со знака подчеркивания, может содержать алфавитно-цифровые символы и знак подчеркивания.
В Python применяется два типа наименования переменных: camelCase и underscore_notation.
Оба варианта будут верны, но учтите, что это разные переменные. Также надо учитывать регистрозависимость, поэтому переменные onlineschool
и Onlineschool
будут представлять разные объекты.
Закрепим, что переменные в Python объявляются без явного указания их типа, а тип переменной определяется автоматически во время выполнения программы. Плюс переменные могут изменять свой тип во время выполнения программы.
Отступы
Если в других языках программирования отступы в коде предназначены только для удобочитаемости, то в Python они очень важны.
Пример:
Однако в следующем случае вы получите ошибку:
Учитывайте это при написании программ.
Логические операторы
Язык программирования Python очень прост для обучения с нуля, ведь его синтаксис схож с синтаксисом других ЯП. Это касается и логических операторов:
- and — возвращает
True
, если оба утверждения верны; - or — возвращает
True
, если хоть одно из утверждений верно; - not — обратный результат, возвращает
False
, если результат верен.
Условия Python и операторы if-else
Python поддерживает обычные логические условия из математики:
- Равно:
а == b
- Не равно:
а != b
- Меньше, чем:
а < b
- Меньше или равно:
a <= b
- Больше, чем:
а > b
- Больше или равно:
a >= b
Эти условия можно использовать несколькими способами, чаще всего в операторах if
и циклах.
А вот пример использования оператора if
:
В этом примере две переменные, a
и b
, используются как часть оператора if
, чтобы проверить, больше ли b
, чем a
. Поскольку a = 33
, b = 200
, мы знаем, что 200 больше 33, поэтому выводим на экран b больше чем a
.
Ключевое слово elif
— это способ Python сказать: «Если предыдущие условия неверны, попробуйте это условие».
В примере a
равно b
, поэтому первое условие неверно, но условие elif
истинно, поэтому мы выводим на экран a и b равны
.
Ключевое слово else
улавливает всё, что не улавливается предыдущими условиями:
В этом примере a
больше, чем b
, поэтому первое условие неверно, также условие elif
неверно, поэтому мы переходим к другому условию и выводим на экран a больше чем b
.
Циклы
Любой курс Питон разработчика включает изучение циклов. Циклы позволяют выполнять некоторое действие, в зависимости от соблюдения условия. В языке Python есть следующие типы циклов:
- while;
- for.
С помощью цикла while
мы можем выполнять набор операторов, пока условие истинно:
Цикл for
используется для перебора последовательности (то есть списка, кортежа, словаря, набора или строки). С помощью цикла for
мы можем выполнить набор операторов один раз для каждого элемента в списке, кортеже, наборе и т. д. Пример использования:
Подробнее о циклах в программировании.
Функции
Python также поддерживает функции, которые могут принимать аргументы и возвращать значения. Функции в Python могут быть определены как встроенные (built-in) или определены пользователем.
Обычно функция определяется с помощью инструкции def
. Определим простейшую функцию:
Инструкция return
говорит, что нужно вернуть значение. В нашем случае функция возвращает сумму x
и y
. Теперь мы можем ее вызвать:
Функция может принимать произвольное количество аргументов или не принимать их вовсе. Также распространены функции с произвольным числом аргументов, функции с позиционными и именованными аргументами, обязательными и необязательными.
Классы
Классы — это основа объектно-ориентированного программирования (ООП) в Python. Классы используются для определения объектов, которые могут иметь свойства (переменные) и методы (функции).
В Python классы создаются с помощью ключевого слова class
. Вот пример простого класса Person с одним свойством (имя) и одним методом (приветствие):
В этом примере метод __init__
является конструктором класса и инициализирует свойство name. Метод say_hello
выводит приветствие, используя значение свойства name. Чтобы создать экземпляр класса Person
, нужно вызвать его конструктор с соответствующим аргументом.
Например, чтобы создать объект person
с именем Алиса, мы можем написать следующий код:
Python-разработчик, написавший таким образом класс с нуля, может вызывать методы объекта person, например:
Классы в Python также поддерживают наследование, что позволяет создавать новые классы на основе существующих, добавлять новые свойства и методы. Кроме того, Python поддерживает множественное наследование, которое позволяет создавать классы, наследующие свойства и методы от нескольких родительских классов.
Методы
В Python методы — это функции, которые определены внутри класса и могут вызываться в экземплярах этого класса. Методы могут изменять состояние объекта, обращаться к его свойствам и выполнять другие операции.
Вот пример класса Rectangle
, который имеет два свойства (ширина и высота) и два метода (вычисление площади и периметра):
Метод __init__
является конструктором класса и инициализирует свойства width
и height
. Методы area
и perimeter
вычисляют площадь и периметр прямоугольника, используя значения свойств width
и height
.
Чтобы создать экземпляр класса Rectangle
, нужно вызвать его конструктор с соответствующими аргументами. Например, чтобы создать объект rect
с шириной 10 и высотой 5, мы можем написать следующий код:
Теперь можно вызывать методы объекта rect
, например:
Методы могут принимать аргументы, как и обычные функции. Они также могут вызывать другие методы или обращаться к другим свойствам объекта. Кроме того, Python поддерживает статические методы и методы класса, которые могут быть вызваны на классе, но не в его экземплярах.
Продвинутый Python
На этом обучение Python-разработчика не заканчивается. Необходимо понимать, как работает язык, а для этого важно углубиться в продвинутые аспекты разработки на нём.
Функциональное программирование
Функциональное программирование в Python — это подход к написанию программ, основанный на функциях высшего порядка, неизменяемости данных и отсутствии побочных эффектов.
Python поддерживает функциональное программирование, в том числе использование анонимных функций (lambda-функций), функций высшего порядка, списковых включений, генераторов, функциональных конструкций, таких как map()
, reduce()
и filter()
и т. д.
Пример использования функции высшего порядка map()
, которая применяет функцию к каждому элементу списка и возвращает новый список с результатами:
Также в Python есть поддержка генераторов, которые позволяют создавать ленивые последовательности значений. Пример использования генератора для создания бесконечной последовательности чисел Фибоначчи:
Эти функции и конструкции позволяют писать более чистый, краткий и выразительный код, который легче поддерживать и тестировать. Но функциональное программирование не всегда является лучшим выбором, особенно в случаях, когда нужно работать с изменяемыми данными или писать производительный код.
Лямбда-функции
Лямбда-функция в Python — это анонимная функция, которая может быть определена в одной строке кода без использования ключевого слова def
. Лямбда-функция возвращает результат выражения, которое находится после оператора :
.
Пример использования лямбда-функции для возведения числа в квадрат:
Лямбда-функции могут использоваться вместо именованных функций, когда нужно определить функцию внутри другой функции или передать функцию в качестве аргумента в другую функцию.
Пример использования лямбда-функции в качестве аргумента map()
для возведения каждого элемента списка в квадрат:
Лямбда-функции могут быть полезны, когда нужно определить простую функцию без необходимости давать ей имя или использовать ее в других местах программы. Но если функция достаточно сложная или будет использоваться многократно, лучше определить ее с помощью ключевого слова def
.
Мапы, списки, коллекции
Список — это упорядоченная коллекция элементов, которые могут быть изменены. Список может содержать элементы разных типов, и доступ к ним осуществляется по индексу. Например:
Коллекции — это контейнеры, которые содержат набор элементов. Они бывают двух типов: изменяемые (списки, множества, словари) и неизменяемые (кортежи, строки). Например, множество — это коллекция, которая не содержит дублей и может быть изменена:
Map
— функция, которая принимает функцию и последовательность и применяет данную функцию к каждому элементу последовательности, возвращая новую последовательность с результатом. Пример:
Ошибки и их обработка в Python
В Python при выполнении программ могут возникать ошибки или исключения, такие как деление на ноль, попытка доступа к несуществующему индексу списка, неверное имя переменной и другие. Для этого в программах обучения на Питон разработчика с нуля предусматривается блок разбора исключений через конструкцию try-except
.
Try-except
позволяет «поймать» исключение и выполнить действия по его обработке, не прерывая выполнение программы. Конструкция выглядит следующим образом:
В данном примере, если при выполнении кода произойдет деление на ноль, будет вызвано исключение ZeroDivisionError
, и выполнение программы перейдет к блоку except
.
Также можно использовать конструкцию try-except
для обработки нескольких типов исключений одновременно:
I/O
В Python для работы с I/O (вводом/выводом) существуют встроенные функции и модули. Например, функции print
и input
используются для ввода и вывода данных в консоль:
Для работы с файлами в Python есть функция open()
, которая открывает файл на чтение или запись. Функция возвращает объект типа file
, который позволяет производить операции с файлом:
Кроме того, в Python есть множество модулей для работы с различными форматами данных, такими как CSV, JSON, XML и другими:
Регулярные выражения
Регулярками называются шаблоны, которые используются для поиска соответствующего фрагмента текста и сопоставления символов. Подробнее о регулярных выражениях в Python.
Тестирование
Основная идея тестирования в Python заключается в том, чтобы написать тесты для каждого модуля или функции в отдельности и проверить, что они проходят успешно. Для этого используются специальные инструменты и библиотеки, которые позволяют запускать тесты автоматически и получать отчеты о результатах выполнения.
Две наиболее популярные библиотеки для тестирования на языке Python — unittest и pytest:
- Unittest — это стандартный модуль тестирования в Python, с которым можно писать и запускать тесты для проверки работоспособности кода и который Python-разработчик должен знать с нуля. Он содержит множество методов и атрибутов для создания тестовых сценариев, утверждений и сбора результатов тестирования.
- Pytest — библиотека тестирования в Python, которая обеспечивает более простой и элегантный подход к написанию тестов, чем unittest. Она предоставляет широкий спектр возможностей, включая автоматическое обнаружение и запуск тестов, улучшенный вывод результатов тестирования, множественные плагины и расширения, а также поддержку различных типов тестирования.
Популярные библиотеки и фреймворки Python — 2023
Data Science
- NumPy — библиотека для работы с массивами данных, матрицами и алгоритмами линейной алгебры.
- Pandas — библиотека для обработки и анализа данных, предоставляющая удобный интерфейс для работы с таблицами данных.
- Matplotlib — для визуализации данных, создания графиков, диаграмм и других типов графических представлений данных.
- Scikit-learn — содержит реализации многих алгоритмов машинного обучения, включая классификацию, регрессию, кластеризацию и другие.
- TensorFlow — обеспечивает мощные инструменты для создания, обучения и использования нейронных сетей.
Веб-разработка
- Django — высокоуровневый фреймворк для веб-разработки, обеспечивающий удобную абстракцию для создания веб-приложений, включая аутентификацию, авторизацию, работу с базами данных и многие другие функции.
- Flask — легкий и гибкий фреймворк для веб-разработки, который позволяет создавать быстрые и масштабируемые веб-приложения.
- SQLAlchemy — библиотека для работы с базами данных, обеспечивающая удобный и гибкий интерфейс для работы с различными типами баз данных.
- Requests — библиотека для работы с HTTP-запросами, которая позволяет отправлять и получать данные с веб-серверов.
- Beautiful Soup — библиотека для парсинга HTML- и XML-документов, которая обеспечивает удобный способ извлечения данных из веб-страниц.
Геймдев
- Pygame — это библиотека для разработки 2D-игр на Python. Она содержит инструменты для управления графикой, звуком и событиями, такими как нажатия клавиш и мыши.
- Panda3D — фреймворк для разработки 3D-игр на Python. Обеспечивает разработчикам высокую степень контроля над графикой и физикой игры, а также облегчает создание сложных 3D-сцен и объектов.
- Arcade — библиотека для разработки 2D-игр на Python. Предоставляет инструменты для работы с графикой, физикой и анимацией, а также поддерживает множество вспомогательных функций, таких как загрузка изображений и звуков.
- PyOpenGL — библиотека для работы с графикой OpenGL на Python. Предоставляет высокоуровневый интерфейс для создания 3D-объектов и сцен, множество инструментов для управления освещением, материалами и текстурами.
Дополнительные материалы
Книги
Подкасты
- https://podcast.python.ru/
- https://realpython.com/podcasts/rpp/ — для тех, кто владеет английским.
Также можете посмотреть и послушать полезные подкасты от MoscowPython:
Курсы
Хотите быстро освоить весь базис, представленный в нашей дорожной карте? Это легко реализовать с онлайн-университетом Skypro, который выпускает уверенных разработчиков на Python. Специальный онлайн-курс «Python-разработчик» с трудоустройством от Skypro предполагает обучение программированию на Python с нуля до профи.
Для тех, кто не хочет учиться в большой группе, предусмотрен тариф «Премиальный». Здесь будущий Python-разработчик получит индивидуальное обучение: тариф предусматривает мини-группы по пять человек.
В программу также добавлены уроки по английскому для IT-специалистов.
Где и как изучать Python?
Всё зависит от уровня самоорганизации. Самообучение хорошо подойдет людям с развитым тайм-менеджментом и возможностью дисциплинированно выполнять поставленные перед собой задачи без внешнего контроля.
Но у данного подхода есть существенный недостаток: ваш уровень знаний и навыков некому оценить. В этом случае можно оплачивать услуги ментора, который время от времени будет проверять ваши таски и давать советы.
Но есть ли смысл оплачивать одного специалиста, если есть возможность пройти полноценные курсы Python-разработчика, где вашим развитием будут заниматься опытные наставники?
Например, у SkyPro есть курс Python-разработчика с нуля. За 10 месяцев вы освоите базу, познакомитесь с необходимыми инструментами на практике, создадите 7 пет-проектов для портфолио и сможете претендовать на позицию младшего разработчика. По окончанию курса вы получите диплом о профессиональной переподготовке, а карьерные консультанты помогут правильно составить резюме и подготовиться к вопросам рекрутеров на собеседованиях.
Мы же надеемся, что статья оказалась для вас полезной. Остались вопросы? Задайте их в комментариях.
Реклама ОАНО ДПО «СКАЕНГ» LjN8JvxFj
34К открытий40К показов