36 бесплатных курсов по языку программирования python

Other Useful Items

  • Looking for 3rd party Python modules? The
    Package Index has many of them.
  • You can view the standard documentation
    online, or you can download it
    in HTML, PostScript, PDF and other formats. See the main
    Documentation page.
  • Information on tools for unpacking archive files
    provided on python.org is available.
  • Tip: even if you download a ready-made binary for your
    platform, it makes sense to also download the source.
    This lets you browse the standard library (the subdirectory Lib)
    and the standard collections of demos (Demo) and tools
    (Tools) that come with it. There’s a lot you can learn from the
  • There is also a collection of Emacs packages
    that the Emacsing Pythoneer might find useful. This includes major
    modes for editing Python, C, C++, Java, etc., Python debugger
    interfaces and more. Most packages are compatible with Emacs and

Approach 1: Spin Docker Containers on the fly

Our first approach was naive: to compile and run the user-submitted code in a Docker-based sandbox. Docker is a container for an application that contains the full configuration of the environment that the code needs to be run in. It leverages virtualization and builds layers over the OS Kernel to provide a consistent language to describe how to build your application.

For instance, if you want to host an Nginx server on an ubuntu system and copy over your static file to it, the relevant Dockerfile would look like:

The Dockerfile that we wrote starts with an ubuntu image, installs all the programming languages we need to run in the compiler, and then starts a node server on it.

One thing to note about Docker and Dockerfiles is that this was the beginning of wide adoption of Infrastructure-as-code, where you can completely define the environment in which a piece of code needs to be run through code, transfer it to a completely different OS and expect it to just work.

Think of a Docker image as the sheet music of a song for any instrument, say a piano. If you gave the same sheet music to 100 different pianists, each would play the same notes but wouldn’t sound exactly the same. A Docker container effectively packages the instrument along with the sheet music so that it always sounds the same.

The Docker Engine builds an abstraction layer above the OS Kernel that allows efficient sharing of OS resources.

Virtual Machines could also do that, but as you can see from the diagram above, by having multiple containers share the same host OS, Docker containers solved many of the resource-related issues from the Virtual Machine days.

The initial version of the code sandbox we built was similar to the Nginx Dockerfile you saw above. A node.js script would expose an API for running programs. When the API was hit, it would spin up a Docker container with Python installed, run the code inside it and return the result. The communication between the docker container and the node server would happen through mounted volumes, a feature in Docker that allows Docker to share common resources (files in this case) with the host OS and with other Docker containers.

Docker images are very fast to create, booting up in 2 seconds or less.

This solution would have been good enough if we were using it in a Python course that was behind a paywall. But our goal was to put a Python shell out in the open. It would be extremely costly to run so many containers on the fly.

If you’re wondering, «Won’t that be slow?». Well… not really. Container boot times are extremely fast these days and for most use cases, this would be good enough. We still run an online R compiler on our product datamentor.io that uses this approach and it’s never been a problem. But we never had the confidence to put the R compiler we built with this approach for public use without a paywall. That had to change.

Онлайн среда Repl.It

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

Кроме Пайтона здесь всегда можно восполнить прорехи в знании таких популярных языков как Ruby, C#, Lua, Java, ES6 и т.д. Простота и гибкость настроек интерфейса привлекательна для программистов любого уровня. Учтены многие мелочи: быстрая смена темы, настройка шрифта, отступов, заполнение автоматом. Учётная запись позволит не потерять свой код, который будет под надёжной защитой.


What’s next?

Infrastructure-as-data allowed me to introduce complex features into our online compiler app without doing a lot of coding. Features of Kubernetes such as session affinity, liveness and readiness probes, Nginx Ingress, ClusterIssuer, Deployments, and many more helped make our application robust.

As of this writing, there have been zero crashes on any of our pods for the last 48 hours. The dream of providing access to the world of programming for anyone with a smartphone is coming true.

Peter Thiel says you have to make your product 10X better than your biggest competitor. We ruthlessly pushed for the highest level of performance and ease of use and our online compiler has already risen to #1 on Google SERP for the keyword «Python Online Compiler».

We are now working to implement the compiler throughout our website for all the programming languages we support. Since I’ve built the foundations right, I hope our users will be able to play with all the code on Programiz very soon.

Онлайн-компиляторы для Python

Пример кода в Tutorialspoint

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

Пример кода в Paiza.io

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

Пример кода в Online Python

Школа программирования TechRocks

Курсы от школы TechRocks

TechRocks предлагает быстрый ознакомительный курс по Python — «PythonBoost». Вы изучите основы языка и получите необходимый скелет знаний, на который сможете наращивать все новые навыки. И это всего за три недели!

Записавшись на курс, вы получите доступ к видеоурокам и дополнительным материалам для углубленного изучения каждой темы. Кроме того, вам будут предложены задачи для отработки новых навыков (в каждом занятии — более 10 задач разного уровня).

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

Между live-сессиями общаться с преподавателем и менторами можно в телеграм-чате.

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

В программе курса:

Первое знакомство и настройка окруженияПодготовка окружения
Cкачивание и установка PyCharm
Запуск первого проекта
Базовое знакомство с синтаксисом Python

Интерпретатор PythonОбзор интерпретатора Python
Что происходит после запуска программы на выполнение

Базовые структуры данныхЗнакомство со списками, кортежами, словарями и множествами
Приведение типов
Особенности использования типов для разных задач

ЦиклыРазбор базовых циклов for и while и их использования
Генераторы и list comprehensions

ФункцииСпособы вызова функций
Разбор встроенных функций Python
Числа Фибоначчи

Условия if/elif/else (разбор условных операторов)


Классы, объекты.Что такое класс и объект, из чего состоит класс, какие в нем бывают методы и атрибуты.
Разбор основных принципов ООП (наследование, инкапсуляция, полиморфизм).

Наследование классов (случаи применения, переопределение методов и атрибутов).

Тестирование (базовые понятия по тестированию кода).

Обработка ошибок (try, except, else, finally)

Декораторы (что это такое, как создать и где используют).

Материалы для дальнейшего изучения (что делать дальше после прохождения курса, какие книги читать, какие проекты делать, что стоит изучать, а что не так важно для работодателей).. По окончании курса вы получите электронный сертификат, хотя это не главное

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

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

Что такое Ideone?

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

  • Время на компиляцию ограничено 10 секундами.
  • Пользователям, имеющим регистрацию, даётся 15 секунд для выполнения задачи, а случайно зашедшим на сайт посетителям – всего 5 секунд.
  • Использование оперативной памяти также ограничено 256 МБ.
  • Новые файлы не получится создать при запуске кода, если отсутствует Интернет-соединение.

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


Создание exe файла с помощью PyInstaller

PyInstaller собирает в один пакет Python-приложение и все необходимые ему библиотеки следующим образом:

  1. Считывает файл скрипта.
  2. Анализирует код для выявления всех зависимостей, необходимых для работы.
  3. spec, который содержит название скрипта, библиотеки-зависимости, любые файлы, включая те параметры, которые были переданы в команду PyInstaller.
  4. Собирает копии всех библиотек и файлов вместе с активным интерпретатором Python.
  5. Создает папку BUILD в папке со скриптом и записывает логи вместе с рабочими файлами в BUILD.
  6. Создает папку DIST в папке со скриптом, если она еще не существует.
  7. Записывает все необходимые файлы вместе со скриптом или в одну папку, или в один исполняемый файл.

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

Возьмем в качестве примера простейший c названием simple.py, который содержит такой код.


Создадим один исполняемый файл. В командной строке введите:

После завершения установки будет две папки, BUILD и DIST, а также новый файл с расширением .spec. Spec-файл будет называться так же, как и файл скрипта.

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

Вот что произойдет после запуска файла.

Запуск программ

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

Полное имя означает, что нужно написать не только название файла, но и диск с папкой, где он находится. Чтобы было понятнее, давайте возьмём наш код из статьи про таймер на Python и сохраним его в файле time.py3 на диске D. Py3 означает, что внутри этого файла будет код на Python3

Можно просто назвать файл python.py, без тройки, но для некоторых моментов это может быть важно

Теперь, чтобы запустить наш код, напишем в командной строке:

Результат работы — выполненный алгоритм:

Other Useful Items

  • Looking for 3rd party Python modules? The
    Package Index has many of them.
  • You can view the standard documentation
    online, or you can download it
    in HTML, PostScript, PDF and other formats. See the main
    Documentation page.
  • Information on tools for unpacking archive files
    provided on python.org is available.
  • Tip: even if you download a ready-made binary for your
    platform, it makes sense to also download the source.
    This lets you browse the standard library (the subdirectory Lib)
    and the standard collections of demos (Demo) and tools
    (Tools) that come with it. There’s a lot you can learn from the
  • There is also a collection of Emacs packages
    that the Emacsing Pythoneer might find useful. This includes major
    modes for editing Python, C, C++, Java, etc., Python debugger
    interfaces and more. Most packages are compatible with Emacs and

Пара слов о mypyc

Если вы уже бросились компилировать ваши пакеты, то стоит задержаться на пару минут, чтобы дочитать этот абзац до конца. Главным недостатком mypyc пока остается стабильность: он все еще в альфе, точнее, сейчас это вообще не самостоятельный проект, а часть mypy. Собственно он и создавался специально под задачу увеличения производительности mypy и для этой цели он уже более года как стабилен. Но как общее решение по компиляции любого python-кода, он еще сыроват, о чем авторы предупреждают на странице проекта.

Также существуют принципиальные ограничения, накладываемые на компилируемый код или на код, взаимодействующий со скомпилированным:

  • Принудительная проверка типов в рантайме;

  • В компилируемом коде запрещается monkey patching;

  • Mypy хранит классы в С структурах для увеличения скорости доступа к атрибутам, но это приводит к проблемам совместимости.

Эти ограничения носят принципиальный характер и являются следствием архитектуры компилятора. Но из них проистекают другие ограничения, например, невозможность использования модуля стандартной библиотеки abc. Помимо этого, есть большая порция недоработок и багов. Чаще всего они приводят к тому, что код gcc отказывается компилировать полученный С код, при этом, чтобы понять настоящую причину ошибки, приходится прокручивать в голове непростую процедуру реверс инжиниринга. Пока резутльт таков, что при компиляции одного из моих проектов, без проблем компилировалось примерно 20 % модулей, зато каких либо проблем при работе с уже скомпилированными модулями я не заметил.

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

Как скомпилировать Python код в .exe | практикум

Для начала, нам нужно установить pyinstaller с помощью pip. Пишем команду в командной строке:

pip install pyinstaller

Если вы используете Linux и у вас не установлен pip, то просто напишите команду:

apt-get install python-pip

На Windows, если вы не изменяли конфигурации установки Python, проблемы отсутствия pip у вас возникнуть не должно.

Вторым шагом будет переход в директорию с нашим проектом. Просто копируем путь и с помощью команды cd (наш путь) переходим в директорию, для Linux и Windows команда одинаковая.

Теперь давайте скомпилируем наш Python код в .exe, не будем тянуть.

Сделаем мы это с помощью установленного пакета pyinstaller.

Пишем команду:

pyinstaller -F -w -i( to set up icon on your .exe) main.py

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

  • -F – этот флаг отвечает за то, чтобы в созданной папке dist, в которой и будет храниться наш исполняемый файл не было очень много лишних файлов, модулей и т.п.
  • -w – этот флаг вам понадобится в том случае, если приложение использует tkinekt, оно блокирует создание консольного окна, если же ваше приложение консольное, вам этот флаг использовать не нужно.
  • -i – этот флаг отвечает за установку иконки на наш исполняемый файл, после флага нужно указать полный путь к иконке с указанием её имени. Например: D:\LayOut\icon.ico

Вот и всё, сегодня мы рассмотрели, как скомпилировать Python код в .exe, Если у вас остались какие-либо вопросы, пишите их в комментарии, с удовольствием отвечу.

Так же подписывайтесь на обновления сайта, тут будет ещё много интересного!

Удачи в жизни и до встречи!

Automated Deployments and Development Workflow

For me, a project is never complete unless it has an automated deployment process. Automated deployment lowers the barrier for other members of your team to contribute.

The GitHub actions script that deploys the Kubernetes cluster is not complex at all, I’ll just leave it here for anyone wishing to know how a Kubernetes cluster is deployed.

We check out the latest code, build a Docker image based on Dockerfile that is checked in with the code, push that so it becomes the latest image on our Docker Hub private repo, and then ask Kubernetes to pull it from Docker Hub. Another win for Infrastructure-as-code!

Brython — реализация Python для браузера

Brython, отмеченный как «реализация Python 3 для веб-программирования на стороне клиента», является популярным компилятором, который преобразует код Python в код JavaScript.

Адаптированный к среде HTML5, Brython поставляется с интерфейсом для объектов и событий DOM. Brython — это сокращение от Browser Python. Он может похвастаться широким функционалом, начиная от создания простых элементов документа и перетаскивания до трехмерной навигации. Компилятор Python работает в Firefox намного лучше, чем в Google Chrome. Brython поддерживает не только все современные настольные браузеры, но и так же мобильные веб-браузеры. Компилятор Python поставляется с консолью JavaScript, которую можно использовать для оценки времени выполнения некоторой программы JS по сравнению с ее эквивалентом Python в редакторе. Согласно официальному блогу Пьера Квентеля, создателя и ведущего разработчика Brython, Brython намного быстрее Pypy.js и Skulpt. В некоторых случаях компилятор Python работает даже быстрее, чем эталонная реализация Python, то есть CPython. Brython поддерживает большую часть синтаксиса Python 3, например генераторы и импорт библиотек. Он также обеспечивает поддержку нескольких модулей, принадлежащих дистрибутиву CPython, и поставляется с библиотеками для взаимодействия с элементами и событиями DOM. Поддержка последних спецификаций HTML5 / CSS3 также доступна в Brython, а компилятор Python может использовать популярные CSS-фреймворки, такие, как BootStrap и LESS.

Файл spec

Файл spec — это первый файл, который PyInstaller создает, чтобы закодировать содержимое скрипта Python вместе с параметрами, переданными при запуске.

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

Файл с расширением .spec сохраняется по умолчанию в текущей директории.

Если у вас есть какое-либо из нижеперечисленных требований, то вы можете изменить файл спецификации:

  • Собрать в один бандл с исполняемым файлы данных.
  • Включить другие исполняемые файлы: .dll или .so.
  • С помощью библиотек собрать в один бандл несколько программы.

Например, есть скрипт simpleModel.py, который использует TensorFlow и выводит номер версии этой библиотеки.


Компилируем модель с помощью PyInstaller:

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

Исправим ее, обновив файл spec. Одно из решений — создать файл spec.

Команда pyi-makespec создает spec-файл по умолчанию, содержащий все параметры, которые можно указать в командной строке. Файл simpleModel.spec создается в текущей директории.

Поскольку был использован параметр , то внутри файла будет только раздел exe.

Если использовать параметр по умолчанию или onedir, то вместе с exe-разделом будет также и раздел collect.

Можно открыть simpleModel.spec и добавить следующий текст для создания хуков.

Создаем хуки и добавляем их в hidden imports и раздел данных.


Строки в Python обособляются кавычками двойными «»» или одинарными «’». Внутри двойных ковычек могут присутствовать одинарные или наоборот. К примеру строка «Он сказал ‘привет’!» будет выведена на экран как «Он сказал ‘привет’!». Если нужно использовать строку из несколько строчек, то эту строку надо начинать и заканчивать тремя двойными кавычками «»»»». Вы можете подставить в шаблон строки элементы из кортежа или словаря. Знак процента «%» между строкой и кортежем, заменяет в строке символы «%s» на элемент кортежа. Словари позволяют вставлять в строку элемент под заданным индексом. Для этого надо использовать в строке конструкцию «%(индекс)s». В этом случае вместо «%(индекс)s» будет подставлено значение словаря под заданным индексом.

Shed Skin — экспериментальный компилятор для Python

Еще один популярный компилятор Python — Shed Skin.

Он преобразует статически типизированную программу Python в эквивалентную программу на чистом C++. Статически типизированный означает, что используемые переменные должны относиться только к одному типу данных. Shed Skin не поддерживает некоторые общие функции, такие как использование вложенных функций и определение функций, которые принимают различное количество аргументов. Только некоторые стандартные функции библиотеки Python доступны для использования с Shed Skin. В качестве экспериментальной программы компилятора Shed Skin предлагает перевести статически типизированные программы Python в оптимизированный код C++ с несколькими ограничениями. Кроме того, Shed Skin не может масштабироваться более, чем на несколько тысяч строк кода. Если в вашем коде есть неподдерживаемый модуль Shed Skin, вы должны удалить его и добавить простой код для воспроизведения желаемой функциональности.

Несмотря на свой экспериментальный статус, Shed Skin может создавать автономные программы или модули расширения, которые можно импортировать и использовать в больших программах Python. Самым большим преимуществом использования Shed Skin является то, что он позволяет значительно повысить производительность. Это главным образом связано с тем, что компилятор Python переопределил встроенные типы данных Python в свой собственный набор классов, реализованный в эффективном коде C++.

Подключаем VS Code

Мы уже рассказывали об этом редакторе кода — он быстрый, бесплатный и есть много плагинов. Чтобы работать с Python-файлами было проще, научим VS Code понимать и запускать их. Для этого нам нужно найти и установить специальный плагин для этого языка. Открываем вкладку Расширения (Extensions) и пишем такое:

В результатах поиска находим Python и нажимаем Install:

Затем то же самое делаем для подсветки синтаксиса: пишем в Расширениях команду и устанавливаем плагин MagicPython. После этого перезапускаем VS Code, открываем наш файл и нажимаем F5. Когда выпадающее окошко спросит, с чем будем работать — выбираем Python. В итоге мы получаем редактор кода с нужной нам подсветкой синтаксиса и результатом работы в том же окне. Красота!

Запускаем и отлаживаем программу на Python в VS Code.

Логика на Python

В качестве теста реализуем простое приложение конвертер валют (да-да, банально, никому не надо, на гитхабе миллион проектов). Для этого на python установим библиотеку CurrencyConverter:

Теперь приступим к написанию логики на python. Реализуем метод, который на вход будет принимать сумму, валюту с которой нам надо перевести и валюту, на которую нам надо перевести. Создадим “convert.py” в директории “back” и запишем в него следующий код:

Теперь в директории “middle” создадим файл “mid_convert.py” и пропишем следующий код:

Что здесь вообще происходит? Файл “mid_convert.py” будет служит связующим звеном между JS и Python. Декоратор @eel.expose дает нашей программе понять, что функция, описанная ниже, может быть вызвана из JS. Таким образом, любая функция, которую мы в будущем захотим вызывать из JS, должна быть обернута декоратором @eel.expose. Очевидно, что не имеет смысла делать лишних модулей, если у вас простой проект, можно было обернуть декоратором функцию “convert_value” в модуле “convert.py”. В больших проектах разбиение программы на такие слои позволит легче расширять и оптимизировать код.

Как скомпилировать Python код в .exe | немного теории

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

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

Многие задаются вопросом, когда написали программу на Python: “А как его скомпилировать в .exe файл?”. Вопрос довольно сложный, для того, кто только открыл для себя этот язык и ещё не сталкивался с pip.

pip – система управления пакетами, которая используется для установки и управления программными пакетами, которые написаны на Python. Если кратко, то pip – это файловый менеджер языка Python.

pyinstaller – программа, которая собирает все зависимости и python-приложение в один пакет и превращает его в исполняемый файл для Windows, Linux, MacOS.


Сайт: https://eric-ide.python-projects.org/

  • IDE и по совместительству редактор Python от Detlev Offenbach.
  • С открытым кодом
  • Поддержка Windows

Содержит такие функции как отладчик Python и Ruby, покрытие кода, автоматическая проверка кода, оболочка Python и Ruby, браузер класса и многое другое. Также имеются функции для совместного редактирования. Диалоги Regex и Qt, опции для создания сторонних приложений прямо в редакторе, диаграммы приложения, возможности управления проектами, а также интерактивная оболочка Python. Многоязычный пользовательский интерфейс, который включает в себя Английский, Немецкий, Русский, Французский, Испанский, Итальянский, Турецкий и Китайский языки, контроль версии для Subversion, Mercurial и Git, использование объявлений в плагинах, и многое другое.


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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *