Python Lounge: работа и стажировки для программистов
Відкрити в Telegram
Здесь можно найти интересующую вас работу и стажировки для программистов, а так же полезные статьи про Python. Размещение вакансии только - @perezvonyubot Ссылка на канал: @python_lounge Мы входим в сеть promopoisk.com Реклама: @adtgassetsbot
Показати більше3 704
Підписники
Немає даних24 години
-127 днів
-1530 днів
Архів дописів
Heap Sort (Сортировка кучей)
Сортировка кучей, пирамидальная сортировка — алгоритм сортировки, использующий структуру данных двоичная куча. Это неустойчивый алгоритм сортировки с временем работы O(nlogn)
, где n
— количество элементов для сортировки, и использующий O(1)
дополнительной памяти.
Реализация на Python
# Программа Python для реализации сортировки кучи
# Чтобы скопировать поддерево с корневым индексом i.
#@python_lounge
# n - размер кучи
def heapify(arr, n, i):
largest = i # Инициализировать largest как root
l = 2 * i + 1 # left = 2*i + 1
r = 2 * i + 2 # right = 2*i + 2
# Проверить, существует ли левый дочерний элемент root и есть ли
# больше, чем корень
if l < n and arr[i] < arr[l]:
largest = l
# Проверить, существует ли правый дочерний элемент root и есть ли он
# больше, чем корень
if r < n and arr[largest] < arr[r]:
largest = r
# Сменить корень, если нужно
if largest != i:
arr[i],arr[largest] = arr[largest],arr[i] # swap
# Заполнить корень.
heapify(arr, n, largest)
# Основная функция для сортировки массива заданного размера
def heapSort(arr):
n = len(arr)
# Создание maxheap.
# Поскольку последний родитель будет в ((n // 2) -1), мы можем начать с этого места.
for i in range(n // 2 - 1, -1, -1):
heapify(arr, n, i)
# Один за другим извлечь элементы
for i in range(n-1, 0, -1):
arr[i], arr[0] = arr[0], arr[i] # swap
heapify(arr, i, 0)
# Код драйвера для тестирования выше
arr = [ 12, 11, 13, 5, 6, 7]
heapSort(arr)
n = len(arr)
print ("Sorted array is")
for i in range(n):
print ("%d" %arr[i]),Data Science[ru] - русскоязычный канал с полезными материалами на такие темы как:
👉
Материалы на тему Machine Learning, DS, Python, Алгоритмы
👉 Задачи по алгоритмам
👉 Новости данной сферы
👉 Вакансии
👉 Конкурсы с розыгрышами билетов на разные конфы
Добро пожаловать!
➡️ @devspКак создавать сложные web-сайты на Python?
Первые шаги в этой специальности вы сделаете уже 15 марта на демо-занятии «Использование сторонних библиотек в django». Вместе с Леонидом Орловым вы рассмотрите общие принципы установки и использования сторонних библиотек вместе с django, а также научитесь пользоваться несколькими популярными библиотеками (django-debug-toolbar, django-cms, django-cleanup).
Демо-занятие является часть онлайн-курса «Python Web-Developer» и дает возможность познакомиться с преподавателем и оценить курс.
Для участия пройдите вступительный тест https://otus.pw/6ndL/
ООП на Python: концепции, принципы и примеры реализации
Программирование на Python допускает различные методологии, но в его основе лежит объектный подход, поэтому работать в стиле ООП на Python очень просто.
Подробно с примеры с теорией изложены ниже по ссылке.
https://telegra.ph/OOP-na-Python-koncepcii-principy-i-primery-realizacii-03-11
Обсудить можно в нашем чате.
Какой принцип ООП описывает следующее предложение? Этот принцип является способностью использовать общий интерфейс для нескольких форм (типов данных).
Что относится к основным принципам ООП?
Примеры проектов по машинному обучению — 10 лучших
https://teletype.in/@python_lounge/top10mlproject
Обсудить можно в нашем чате
Запишись на онлайн-курс «Профессия Python-разработчик» и научись писать программы под руководством личного наставника. Год обучения бесплатно!
На курсе тебя ждет:
39 тем, разработанных на основе требований работодателей методологами-практиками программирования;
работа с личным наставником;
доступ к курсу навсегда;
диплом Python-разработчика;
Переходи по ссылке: https://clc.am/xBrd8A и оставляй заявку на обучение. Всем студентам курса на время обучения мы даём бесплатный доступ к специализированной IDE (среде разработки) от компании JetBrains — PyCharm.
Micro Python — эффективная реализация Python 3 для микроконтроллеров
Английский разработчик Дэмьен Джордж (Damien George) в 2014ом году объявил об эффективной реализация Python 3 для встроенных систем с малым объёмом оперативной памяти. Разработка этой версии началась в декабре, после удачной кампании по сбору средств на выпуск Pyboard — контроллера, работающего на Питоне.
Micro Python — новая реализация языка программирования Python 3, которая должна быть правильно совместима с CPython, в то же время используя минимальное количество ОЗУ, компактный компилятор и высокую производительность в среде выполнения.
Джордж объясняет, что добиться этого удалось за счёт нескольких трюков с указателями и оптимизацией кода. В результате, Micro Python поддерживает почти весь синтаксис Python 3.4 (работа ещё продолжается), а большинство скриптов занимают гораздо меньше ОЗУ и выполняются заметно быстрее, по сравнению с CPython.
Минимальный билд под ARM умещается в 80k, а со всеми функциями под Linux — в 200k. Базовая REPL-среда требует всего 2 килобайта ОЗУ.
Дополнительно, в Micro Python встроены два режима AOT-компиляции в нативный код, есть встроенный ассемблер для написания критичных ко времени приложений на микроконтроллере.
Реализация написана на C99 ANSI C и нормально компилируется под Unix (POSIX), Mac OS X, Windows и некоторых ARM-микроконтроллерах.
Вот документация Micro Python - https://micropython-ru.readthedocs.io/ru/latest/
Да где же поугарать с IT-мемов в Телеге?
Да вот же, принесли на блюдечке — Programmer memes. Это самый популярный канал с юмором для программистов.
Только не забывай выходить из канала, чтобы дописать код. Ну или что ты там обычно делаешь.
@prgmemes
📄Модули🐍
Программы на Python содержат тысячи, десятки тысяч и сотни тысяч строк кода (есть проекты с миллионами). В таких условиях одним файлом с кодом не обойдёшься — его нужно разбивать на части. Для получения доступа к коду, который находится в других файлах, в Python реализован механизм модулей.
Модули и импортирование
Итак, файл с кодом на Python называется модулем. Имя модуля соответствует имени файла, поэтому файлы в Python принято называть в стиле "snake_case" (отметьте иронию: Python — питон — змея — snake — snake_case). Одни модули могут использовать содержимое других, если импортируют эти другие модули с помощью инструкции
import.
Строго говоря, в Python импортировать модули можно несколькими способами:
импортировать сам модуль
импортировать отдельные определения из модуля
импортировать всё содержимое модуля сразу
Импортирование модуля
Рассмотрим применение первого способа — импортирование модуля целиком. Главное удобство упоминания модуля по имени: глядя на код, мы сразу видим, что используемая переменная или вызываемая функция — это часть конкретного модуля.
Синтаксис импорта: import <имя_модуля (без суффикса ".py")>
Всё просто: после ключевого слова import указываем имя модуля (файла). Но при этом суффикс .py в имени надо опустить. То есть, к примеру, для модуля с именем my_module.py в инструкции импорта достаточно прописать my_module, а полный вид инструкции будет таким: import my_module.
В модуле (файле) с именем greeting.py определим функцию say_hi и переменную name:
# file: greeting.py
def say_hi():
print('Hi!')
name = 'Bob'
А в модуле с именем main.py сделаем импорт содержимого модуля greeting.py:
# file: main.py
import greeting # заметьте, расширение ".py" не указывается!
print(greeting.name) # => Bob
greeting.say_hi() # => Hi!
Импортирование модуля в таком виде делает модуль доступным по имени — в данном случае это greeting. К содержимому же модуля можно обратиться, как говорят, "через точку". Причём можно как получать доступ к переменным (greeting.name), так и вызывать функции модуля (greeting.say_hi()).
Импортирование отдельных определений
Синтаксис импорта: from <имя_модуля (без суффикса ".py")> import <список определений>.
Иногда из всего модуля нужна пара функций или переменных, а имя модуля слишком длинное, чтобы писать его каждый раз. Здесь нам может пригодиться следующий вариант использования инструкции import:
# file: main.py
from greeting import say_hi, name
print(name) # используем переменную
say_hi() # вызываем функцию
Здесь после ключевого слова from указано имя модуля, а затем после ключевого слова import — имена определений из этого модуля, которые мы в дальнейшем хотим использовать напрямую (а не "через точку").
В следующем уроке мы рассмотрим третий вариант импортирования модуля ("импорт всего содержимого") и в целом немного углубим наши познания в этой теме.📄Модули🐍
Программы на Python содержат тысячи, десятки тысяч и сотни тысяч строк кода (есть проекты с миллионами). В таких условиях одним файлом с кодом не обойдёшься — его нужно разбивать на части. Для получения доступа к коду, который находится в других файлах, в Python реализован механизм модулей.
Модули и импортирование
Итак, файл с кодом на Python называется модулем. Имя модуля соответствует имени файла, поэтому файлы в Python принято называть в стиле "snake_case" (отметьте иронию: Python — питон — змея — snake — snake_case). Одни модули могут использовать содержимое других, если импортируют эти другие модули с помощью инструкции
import.
Строго говоря, в Python импортировать модули можно несколькими способами:
импортировать сам модуль
импортировать отдельные определения из модуля
импортировать всё содержимое модуля сразу
Импортирование модуля
Рассмотрим применение первого способа — импортирование модуля целиком. Главное удобство упоминания модуля по имени: глядя на код, мы сразу видим, что используемая переменная или вызываемая функция — это часть конкретного модуля.
Синтаксис импорта: import <имя_модуля (без суффикса ".py")>
Всё просто: после ключевого слова import указываем имя модуля (файла). Но при этом суффикс .py в имени надо опустить. То есть, к примеру, для модуля с именем my_module.py в инструкции импорта достаточно прописать my_module, а полный вид инструкции будет таким: import my_module.
В модуле (файле) с именем greeting.py определим функцию say_hi и переменную name:
# file: greeting.py
def say_hi():
print('Hi!')
name = 'Bob'
А в модуле с именем main.py сделаем импорт содержимого модуля greeting.py:
# file: main.py
import greeting # заметьте, расширение ".py" не указывается!
print(greeting.name) # => Bob
greeting.say_hi() # => Hi!
Импортирование модуля в таком виде делает модуль доступным по имени — в данном случае это greeting. К содержимому же модуля можно обратиться, как говорят, "через точку". Причём можно как получать доступ к переменным (greeting.name), так и вызывать функции модуля (greeting.say_hi()).
Импортирование отдельных определений
Синтаксис импорта: from <имя_модуля (без суффикса ".py")> import <список определений>.
Иногда из всего модуля нужна пара функций или переменных, а имя модуля слишком длинное, чтобы писать его каждый раз. Здесь нам может пригодиться следующий вариант использования инструкции import:
# file: main.py
from greeting import say_hi, name
print(name) # используем переменную
say_hi() # вызываем функцию
Здесь после ключевого слова from указано имя модуля, а затем после ключевого слова import — имена определений из этого модуля, которые мы в дальнейшем хотим использовать напрямую (а не "через точку").
В следующем уроке мы рассмотрим третий вариант импортирования модуля ("импорт всего содержимого") и в целом немного углубим наши познания в этой теме.Что отличает хорошего работодателя для IT-специалистов от остальных компаний?
Поделитесь своим мнением в небольшом опросе и получите гарантированный приз — промокод на бесплатную книгу и скидку 25% на продукцию ЛитРес, а также возможность выиграть Яндекс.Станцию, сертификаты в ReStore или Ozon на 10 тысяч рублей.
Участвовать могут:
— Тестировщики, специалисты техподдержки, DevOps, IT-аналитики и разработчики.
— Опыт работы: от двух лет.
Пройдите опрос до 18 марта включительно: https://clc.am/hOghBQ
🖥️13 GUI-библиотек Python.🐍
📖Python поддерживает множество парадигм программирования, включая:
- объектно-ориентированную;
- императивную;
- функциональную;
- процедурную.
Графический интерфейс пользователя (GUI)
GUI это человеко-компьютерный интерфейс. Другими словами, это способ, с помощью которого люди могут взаимодействовать с компьютерами.
Он использует окна, значки, меню. Манипулировать GUI можно как с помощью мышки, так и с помощью клавиатуры.
1. Tkinter
Tkinter это набор инструментов, который может формировать GUI с помощью Python. Он позволяет вам запускать сценарии на Python в GUI-формате. Ссылка ведет на страницу с руководством по Tkinter.
2. Flexx
Многие GUI-библиотеки Python основаны на библиотеках, написанных на других языках, таких как C ++. Например, wxWidgets и libavg. Flexx создана на Python. Для отображения GUI использует веб-технологию.
3. CEF Python
Этот фреймворк нацелен на Windows, MAC OS и Linux. Основан на Google Chromium. Основное внимание в нем уделяется облегчению использования встроенного браузера в сторонних приложениях.
4. Dabo
Цель этого фреймворка – WxPython. Это трехуровневый фреймворк для разработки кросс-платформенных приложений.
5. Kivy
Kivy основан на OpenGL ES 2. У него есть собственный multi-touch для каждой отдельной платформы. Это событийно-ориентированный фреймворк, который прекрасно подходит для разработки игр.
6. Pyforms
Pyforms это фреймворк Python 2.7/3.x для разных окружений, используемый для разработки GUI приложения. В нем поощряется повторное использование кода.
7. PyGObject
С помощью PyGObject вы можете писать на Python приложения для проекта GNOME. Также можно писать приложения на Python, использующие GTK+.
8. PyQt
Qt это кросс-платформенный фреймворк. Он написан на С++. Это очень полная библиотека, включающая много инструментов и API. Широко используется во многих отраслях. Охватывает множество платформ.
9. PySide
Обёртка для Qt. PySide и PyQt отличаются тем, что последний является коммерчески доступным.
10. PyGUI
PyGUI предназначен для платформ Unix, Macintosh и Windows. Фокус этого MVC-фреймворка заключается в том, чтобы вписываться в экосистему Python с максимальной легкостью.
11. libavg
Это сторонняя библиотека, написанная на С++. Обладает следующими особенностями:
показ элементов в форме переменных Python;
система управления событиями;
таймеры;
поддержка логов.
12. PyGTK | PyGObject
«GTK+», широко используемая в Linux, является «GTK + «обёртка из» PyGTK». По сравнению с Kivy и PyQt, PyGTK очень легок для платформ Unix, Macintosh, Windows.
Этот MVC-фреймворк разработан Грегом Эвингом из университета Кентербери (Новая Зеландия). Его главный фокус – как можно более простая адаптация к экосистеме Python.
13. wxPython
Обертка кросс-платформенного GUI для Python на основе wxWidgets. Написана на С++.
🚀Обсудить тему можно в нашем <чате>.🚀
Как создавать сложные web-сайты на Python?
Первые шаги в этой специальности вы сделаете уже 15 марта на демо-занятии «Использование сторонних библиотек в django». Вместе с Леонидом Орловым вы рассмотрите общие принципы установки и использования сторонних библиотек вместе с django, а также научитесь пользоваться несколькими популярными библиотеками (django-debug-toolbar, django-cms, django-cleanup).
Демо-занятие является часть онлайн-курса «Python Web-Developer» и дает возможность познакомиться с преподавателем и оценить курс.
Для участия пройдите вступительный тест https://otus.pw/I5F9T/
🐍Python (+numba) быстрее Си🚀
Главным недостатком питона принято считать его скорость. Разгонять python с переменным успехом стали чуть ли не с первых дней его существования: shedskin, psyco, unladen shallow, parakeet, theano, nuitka, pythran, cython, pypy, numba.
https://telegra.ph/Python-numba-bystree-Si-03-04
Обсудить можно в нашем чате .
Статья рекомендуется всем тем, кто проводит много времени сидя на компьютером, да и не только, потому что поддерживать своё состояние необходимо всем
Здоровье программиста
Работаешь 5 дней в неделю с 9 до 18?
Присоединяйся в общество Офисного Планктона — канал ведут обычные труженики офиса (возможно, кто-то из твоих коллег).
Ребята пилят мемы и травят офисные истории, чтобы разрядить рабочую суету.
Весь коллектив подписался, твоя очередь: @office_story
