Написать пост

Python для начинающих: дорожная карта в 2023 году

Логотип компании Skypro

Полноценный курс Python для начинающих, который станет прекрасным самоучителем. Делаем начало программирования на Python лёгким.

Разберем обучение Python с нуля на примере дорожной карты, которую мы подготовили совместно с онлайн-университетом Skypro. Данная статья — это полноценный гайд разработчика на Python с нуля до Junior. Он подойдет и тем, кто уже начал изучение, и тем, кто только задумывается о программировании. Если же сомневаетесь в своих силах — обратите внимание на курс «Python-разработчик» от Skypro.

  1. Основы Python
  2. Синтаксис Python
  3. Продвинутый Python
  4. Популярные библиотеки и фреймворки Python — 2023
  5. Дополнительные материалы
  6. Где и как изучать Python?

Основы Python

Установка Python

Для начала перейдите на официальный сайт Python и загрузите последнюю версию Python для Windows, Linux, MacOS или другой операционной системы.

Как установить Python на Windows

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

Выберите путь и установите программу:

Python для начинающих: дорожная карта в 2023 году 1

Проверьте, что всё работает:

  • запустите cmd;
  • введите python;
  • если всё хорошо, командная строка выведет версию языка.

По умолчанию будут установлены:

  1. Интегрированная среда разработки IDLE.
  2. Документация.
  3. Менеджер пакетов pip.
  4. Стандартный набор тестов.
  5. Python Launcher.

Как установить Python на Linux

Для большинства сборок Linux Python идет из коробки. Проверить это можно так — откройте окно терминала и выполните команды:

  • python — version;
  • python2 — version;
  • python3 — version.
Python для начинающих: дорожная карта в 2023 году 2

Если по какой-либо причине на вашей системе стоит старая версия, вы можете самостоятельно скомпилировать последнюю версию Python.

Как установить Python на MacOS

Python также входит в сборку MacOS, и его можно запустить через терминал. Если же вы хотите установить самую последнюю версию — она доступна по ссылке.

Рабочее окружение

Обучение языку Python начинается с настройки рабочего окружения.

Среды разработки Python

Вот лишь несколько наиболее популярных Python IDE:

  1. PyCharm — это IDE, разработанная компанией JetBrains. Она предоставляет интегрированную среду для разработки Python-приложений, включая поддержку Django, Flask и других фреймворков. PyCharm имеет богатый набор функций, включая отладчик, инструменты для анализа кода и удобный интерфейс.
  2. Visual Studio Code — это легкий, быстрый и невероятно гибкий редактор кода, доступный на всех платформах. Отличный выбор для программирования на Python. Многофункциональная IDE включает в себя интегрированный отладчик, рефакторинг, автодополнение кода, etc.
  3. Spyder — IDE, которая является частью научно-вычислительной среды Anaconda. Есть множество инструментов для работы с научными вычислениями, включая визуализацию данных, анализ и т. д. Spyder имеет встроенную консоль IPython, которая облегчает отладку и выполнение кода.
  4. Sublime Text — легкий редактор кода, который может быть расширен с помощью плагинов и расширений для поддержки Python. Простой интерфейс, автодополнение кода и другие полезные функции.
  5. 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:

  1. Библиотека requests облегчает отправку HTTP-запросов и обработку ответов, предоставляя более высокоуровневый интерфейс для работы с протоколом. Она позволяет создавать сеансы, работать с куками, заголовками и параметрами запроса, а также обрабатывать различные типы ответов.
  2. Библиотека 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 поддерживает различные типы данных, включая:

  1. Числовые типы: целые числа (int), числа с плавающей точкой (float), комплексные числа (complex).
  2. Строки: последовательности символов, определенных в кавычках (str).
  3. Булевы значения: TRUE и FALSE (bool).
  4. Списки: упорядоченные изменяемые коллекции объектов (list).
  5. Кортежи: упорядоченные неизменяемые коллекции объектов (tuple).
  6. Множества: неупорядоченные коллекции уникальных элементов (set).
  7. Словари: неупорядоченные изменяемые коллекции пар «ключ — значение» (dict).

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

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

Операторы Python делятся:

  1. На арифметические операторы.
  2. Операторы сравнения.
  3. Операторы присваивания.
  4. Логические операторы.
  5. Операторы принадлежности.
  6. Операторы тождественности.
  7. Битовые операторы.

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

Кроме того, Пайтон разработчик с нуля должен понимать, как работает приоритетность операторов. В выражении интерпретатор Python выполняет операторы с более высоким уровнем приоритета первыми. И за исключением оператора возведения в степень (**) они выполняются слева направо.

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

Python для начинающих: дорожная карта в 2023 году 3

Переменные

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

В Python применяется два типа наименования переменных: camelCase и underscore_notation.

			onlineSchool = «Skypro»

online_school = «Skypro»
		

Оба варианта будут верны, но учтите, что это разные переменные. Также надо учитывать регистрозависимость, поэтому переменные onlineschool и Onlineschool будут представлять разные объекты.

Закрепим, что переменные в Python объявляются без явного указания их типа, а тип переменной определяется автоматически во время выполнения программы. Плюс переменные могут изменять свой тип во время выполнения программы.

Подробнее о переменных

Отступы

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

Пример:

			if 5 > 2:
    print("Пять больше двух")
		

Однако в следующем случае вы получите ошибку:

			if 5 > 2:
print("Пять больше двух")
		

Учитывайте это при написании программ.

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

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

  • and — возвращает True, если оба утверждения верны;
  • or — возвращает True, если хоть одно из утверждений верно;
  • not — обратный результат, возвращает False, если результат верен.

Условия Python и операторы if-else

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

  1. Равно: а == b
  2. Не равно: а != b
  3. Меньше, чем: а < b
  4. Меньше или равно: a <= b
  5. Больше, чем: а > b
  6. Больше или равно: a >= b

Эти условия можно использовать несколькими способами, чаще всего в операторах if и циклах.

А вот пример использования оператора if:

			a = 33
b = 200
if b > a:
  print("b больше чем a")
		

В этом примере две переменные, a и b, используются как часть оператора if, чтобы проверить, больше ли b, чем a. Поскольку a = 33, b = 200, мы знаем, что 200 больше 33, поэтому выводим на экран b больше чем a.

Ключевое слово elif — это способ Python сказать: «Если предыдущие условия неверны, попробуйте это условие».

			a = 33
b = 33
if b > a:
  print("b больше чем a")
elif a == b:
  print("a и b равны")
		

В примере a равно b, поэтому первое условие неверно, но условие elif истинно, поэтому мы выводим на экран a и b равны.

Ключевое слово else улавливает всё, что не улавливается предыдущими условиями:

			a = 200
b = 33
if b > a:
  print("b больше чем a")
elif a == b:
  print("a и b равны")
else:
  print("a больше чем b")
		

В этом примере a больше, чем b, поэтому первое условие неверно, также условие elif неверно, поэтому мы переходим к другому условию и выводим на экран a больше чем b.

Циклы

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

  • while;
  • for.

С помощью цикла while мы можем выполнять набор операторов, пока условие истинно:

			i = 1
while i < 6:
  print(i)
  i += 1
		

Цикл for используется для перебора последовательности (то есть списка, кортежа, словаря, набора или строки). С помощью цикла for мы можем выполнить набор операторов один раз для каждого элемента в списке, кортеже, наборе и т. д. Пример использования:

			fruits = ["apple", "banana", "cherry"]
for x in fruits:
  print(x)
		

Подробнее о циклах в программировании.

Функции

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

Обычно функция определяется с помощью инструкции def. Определим простейшую функцию:

			def add(x, y):
  return x + y
		

Инструкция return говорит, что нужно вернуть значение. В нашем случае функция возвращает сумму x и y. Теперь мы можем ее вызвать:

			>>> add(1, 10)
11
>>> add('abc', 'def')
'abcdef'
		

Функция может принимать произвольное количество аргументов или не принимать их вовсе. Также распространены функции с произвольным числом аргументов, функции с позиционными и именованными аргументами, обязательными и необязательными.

Классы

Классы — это основа объектно-ориентированного программирования (ООП) в Python. Классы используются для определения объектов, которые могут иметь свойства (переменные) и методы (функции).

В Python классы создаются с помощью ключевого слова class. Вот пример простого класса Person с одним свойством (имя) и одним методом (приветствие):

			class Person:
    def __init__(self, name):
        self.name = name
    def say_hello(self):
        print(f"Привет, {self.name}!")
		

В этом примере метод __init__ является конструктором класса и инициализирует свойство name. Метод say_hello выводит приветствие, используя значение свойства name. Чтобы создать экземпляр класса Person, нужно вызвать его конструктор с соответствующим аргументом.

Например, чтобы создать объект person с именем Алиса, мы можем написать следующий код:

			person = Person("Алиса")
		

Python-разработчик, написавший таким образом класс с нуля, может вызывать методы объекта person, например:

			person.say_hello()  # выводит "Привет, Алиса!"
		

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

Методы

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

Вот пример класса Rectangle, который имеет два свойства (ширина и высота) и два метода (вычисление площади и периметра):

			class Rectangle:
    def __init__(self, width, height):
        self.width = width
        self.height = height
    def area(self):
        return self.width * self.height
    def perimeter(self):
        return 2 * (self.width + self.height)
		

Метод __init__ является конструктором класса и инициализирует свойства width и height. Методы area и perimeter вычисляют площадь и периметр прямоугольника, используя значения свойств width и height.

Чтобы создать экземпляр класса Rectangle, нужно вызвать его конструктор с соответствующими аргументами. Например, чтобы создать объект rect с шириной 10 и высотой 5, мы можем написать следующий код:

			rect = Rectangle(10, 5)
		

Теперь можно вызывать методы объекта rect, например:

			print(rect.area())  # выводит 50
print(rect.perimeter())  # выводит 30
		

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

Продвинутый Python

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

Функциональное программирование

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

Python поддерживает функциональное программирование, в том числе использование анонимных функций (lambda-функций), функций высшего порядка, списковых включений, генераторов, функциональных конструкций, таких как map(), reduce() и filter() и т. д.

Пример использования функции высшего порядка map(), которая применяет функцию к каждому элементу списка и возвращает новый список с результатами:

			def square(x):
    return x ** 2
numbers = [1, 2, 3, 4, 5]
squares = list(map(square, numbers))  # применяет ф-ю square к каждому э-ту списка
print(squares)  # выводит [1, 4, 9, 16, 25]
		

Также в Python есть поддержка генераторов, которые позволяют создавать ленивые последовательности значений. Пример использования генератора для создания бесконечной последовательности чисел Фибоначчи:

			def fibonacci():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b
fib = fibonacci()
print(next(fib))  # выводит 0
print(next(fib))  # выводит 1
print(next(fib))  # выводит 1
print(next(fib))  # выводит 2
# и так далее...
		

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

Лямбда-функции

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

Пример использования лямбда-функции для возведения числа в квадрат:

			square = lambda x: x ** 2
print(square(5))  # выводит 25
		

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

Пример использования лямбда-функции в качестве аргумента map() для возведения каждого элемента списка в квадрат:

			numbers = [1, 2, 3, 4, 5]
squares = list(map(lambda x: x ** 2, numbers))
print(squares)  # выводит [1, 4, 9, 16, 25]
		

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

Мапы, списки, коллекции

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

			fruits = ['apple', 'banana', 'cherry']
print(fruits[1])  # выводит 'banana'
		

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

			my_set = {1, 2, 3}
my_set.add(4)
print(my_set)  # выводит {1, 2, 3, 4}
		

Map — функция, которая принимает функцию и последовательность и применяет данную функцию к каждому элементу последовательности, возвращая новую последовательность с результатом. Пример:

			numbers = [1, 2, 3, 4, 5]
squares = list(map(lambda x: x ** 2, numbers))
print(squares)  # выводит [1, 4, 9, 16, 25]
		

Ошибки и их обработка в Python

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

Try-except позволяет «поймать» исключение и выполнить действия по его обработке, не прерывая выполнение программы. Конструкция выглядит следующим образом:

			try:
    # блок кода, который может вызвать исключение
    # например, попытка деления на ноль
    result = 1 / 0
except ZeroDivisionError:
    # блок кода, который будет выполнен в случае исключения ZeroDivisionError
    # например, вывод сообщения об ошибке
    print("Ошибка: деление на ноль!")
		

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

Также можно использовать конструкцию try-except для обработки нескольких типов исключений одновременно:

			try:
    # блок кода, который может вызвать исключение
    # например, попытка доступа к несуществующему элементу списка
    my_list = [1, 2, 3]
    print(my_list[5])
except (IndexError, TypeError):
    # блок кода, который будет выполнен в случае исключений IndexError или TypeError
    # например, вывод сообщения об ошибке
    print("Обращение к несуществующему элементу списка или неверный тип данных!")
		

I/O

В Python для работы с I/O (вводом/выводом) существуют встроенные функции и модули. Например, функции print и input используются для ввода и вывода данных в консоль:

			# Вывод на консоль
print("Hello, world!")

# Ввод с консоли
name = input("Введите ваше имя: ")

print("Привет,", name)
		

Для работы с файлами в Python есть функция open(), которая открывает файл на чтение или запись. Функция возвращает объект типа file, который позволяет производить операции с файлом:

			# Открытие файла на чтение
file = open("file.txt", "r")

# Чтение данных из файла
data = file.read()

# Закрытие файла
file.close()

# Открытие файла на запись
file = open("file.txt", "w")

# Запись данных в файл
file.write("Hello, world!")

# Закрытие файла
file.close()
		

Кроме того, в Python есть множество модулей для работы с различными форматами данных, такими как CSV, JSON, XML и другими:

			# Работа с модулем CSV
import csv

# Чтение данных из CSV-файла
with open('file.csv', newline='') as csvfile:
    reader = csv.reader(csvfile, delimiter=',', quotechar='"')
    for row in reader:
        print(', '.join(row))

# Запись данных в CSV-файл
with open('file.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
    writer.writerow(['John', 'Doe', '25'])
    writer.writerow(['Jane', 'Doe', '30'])
		

Регулярные выражения

Регулярками называются шаблоны, которые используются для поиска соответствующего фрагмента текста и сопоставления символов. Подробнее о регулярных выражениях в Python.

Тестирование

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

Две наиболее популярные библиотеки для тестирования на языке Python — unittest и pytest:

  1. Unittest — это стандартный модуль тестирования в Python, с которым можно писать и запускать тесты для проверки работоспособности кода и который Python-разработчик должен знать с нуля. Он содержит множество методов и атрибутов для создания тестовых сценариев, утверждений и сбора результатов тестирования.
  2. 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-объектов и сцен, множество инструментов для управления освещением, материалами и текстурами.

Дополнительные материалы

Книги

Изучаем Python

Изучаем Python

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

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

Чистый Python. Тонкости программирования для профи

Чистый Python. Тонкости программирования для профи

Подкасты

Также можете посмотреть и послушать полезные подкасты от MoscowPython:

Превью видео dHkkHB4J7kE

Курсы

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

Для тех, кто не хочет учиться в большой группе, предусмотрен тариф «Премиальный». Здесь будущий Python-разработчик получит индивидуальное обучение: тариф предусматривает мини-группы по пять человек.

В программу также добавлены уроки по английскому для IT-специалистов.

Где и как изучать Python?

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

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

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

Например, у SkyPro есть курс Python-разработчика с нуля. За 10 месяцев вы освоите базу, познакомитесь с необходимыми инструментами на практике, создадите 7 пет-проектов для портфолио и сможете претендовать на позицию младшего разработчика. По окончанию курса вы получите диплом о профессиональной переподготовке, а карьерные консультанты помогут правильно составить резюме и подготовиться к вопросам рекрутеров на собеседованиях.

Мы же надеемся, что статья оказалась для вас полезной. Остались вопросы? Задайте их в комментариях.

Реклама ОАНО ДПО «СКАЕНГ» LjN8JvxFj

Для начинающих
Python
Планы обучения
Партнёрский материал
30046