Python Learning
33.5K subscribers
1.95K photos
8 videos
7 files
953 links
№ 4974297878

Обучающий канал по Python

Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Python_per_month
Download Telegram
👍3
Что выведет этот код?
Anonymous Quiz
6%
4
33%
3
47%
Ошибку
15%
Узнать ответ
👍20🤔9🗿21
Тернарный оператор

Тернарный оператор — это синтаксическая конструкция в Python, которая позволяет вам создавать более компактные условные выражения.

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

#для_начинающих
👍121
Set comprehension

Set comprehension — это способ создания множества в языке программирования Python с использованием синтаксиса генератора. Он позволяет вам создать множество, применяя выражение к каждому элементу последовательности (например, списку или строки) и автоматически устраняя повторяющиеся значения.

#для_начинающих
👍5😱2
Рисуем карту столицы Австралии

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

Установить пакет - pip install folium

В нашем примере мы рисуем карту Канберры - столицы Австралии(Сама карта находится в посте выше).
👍182🎉2👨‍💻1
Pickling

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

#для_начинающих
👍212
Фабрика декораторов

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

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

#для_начинающих
👍143🤔3
Гринлеты

Гринлеты обычно связан с библиотекой Gevent, которая предоставляет механизм асинхронного программирования, используя зеленые потоки (greenlets). Зеленые потоки (greenlets) являются легковесными «корутинами», то есть функциями, которые можно приостанавливать и возобновлять выполнение, а также передавать им управление без необходимости полного переключения контекста, как это происходит с потоками операционной системы.

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

#для_продвинутых
👍153
Middleware (Django)

Middleware (промежуточное программное обеспечение) — это слой программного кода, который работает между различными компонентами приложения для обработки и управления запросами, ответами и другими аспектами обработки данных. Middleware обычно используется в веб-фреймворках и приложениях для обработки HTTP-запросов, но концепция middleware может применяться и в других контекстах.

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

#для_начинающих
👍14
Сигналы

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

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

#для_начинающих
👍11🤔1🎉1
Что такое MRO?

MRO (Method Resolution Order) — это механизм, используемый для определения порядка разрешения методов при наследовании классов и множественном наследовании. MRO определяет, какие методы будут вызываться в случае, когда у наследующего класса есть методы с одинаковыми именами, унаследованными от разных базовых классов.

MRO в Python определяется с помощью алгоритма C3 Linearization (C3 линеаризации). Этот алгоритм гарантирует, что порядок разрешения методов будет согласован и предсказуем вне зависимости от порядка наследования. Он предотвращает проблемы, связанные с амбигуитетами и неоднозначностями в множественном наследовании.

#для_продвинутых
👍183
Что такое линейная сложность сортировки?

Линейная сложность сортировки обозначает алгоритм сортировки, который имеет временную сложность, пропорциональную количеству элементов в сортируемом массиве (или коллекции). В математической нотации линейная сложность обозначается как O(n), где "n" - количество элементов.

Примером линейной сортировки может быть алгоритм «сортировка подсчётом» (counting sort). В этом алгоритме создается дополнительный массив для подсчета количества вхождений каждого элемента. Затем на основе этой информации о количестве вхождений каждого элемента строится отсортированный массив.

#для_начинающих
👍113🎉2
Закон Амдала

Закон Амдала — это концептуальное правило, описывающее ограничения ускорения, которое можно достичь при оптимизации только части вычислений в программе. Он был предложен Генри Амдалом в 1967 году и является важным принципом в области параллельных вычислений.

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

#для_продвинутых
👍11🎉2
Глубокое копирование (deep copy)

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

Когда мы вызываем глубокое копирование, происходит следующее:
- Создается новый контейнерный объект (список, словарь и т. д.);
- Для каждого элемента исходного объекта рекурсивно вызывается глубокое копирование:
- Если элемент является изменяемым объектом (списком, словарем), то создается его копия с рекурсивным копированием вложенных элементов;
- Если элемент неизменяемый (число, строка) - он просто копируется как есть;
- Копии вложенных объектов вставляются в копию исходного объекта.

#это_база
👍14🎉1
Ключевое слово self

Ключевое слово self используется в методах классов для ссылки на текущий экземпляр (объект) класса. Оно является обязательным первым параметром в определении большинства методов классов. Когда вы вызываете метод объекта класса, Python автоматически передает этому методу ссылку на сам объект в виде аргумента self.

#для_начинающих
👍131
Функция id()

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

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

#для_продвинутых
👍115
classmethod

classmethod — это декоратор в Python, который используется для определения методов класса, которые не принимают экземпляр класса (self) в качестве первого аргумента, а вместо этого принимают класс (cls) в качестве первого аргумента. Эти методы могут использоваться для операций, которые связаны с самим классом, а не с его экземплярами.

#для_начинающих
👍162
PYTHONOPTIMIZE

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

Вы можете установить значение PYTHONOPTIMIZE в соответствующей переменной среды перед запуском интерпретатора Python, чтобы управлять уровнем оптимизации ваших программ. Это установит уровень оптимизации на 2 для выполнения my_script.py.

#для_продвинутых
👍94
Обезьяний патч

Обезьяний патч (Monkey patch) в Python — это техника, которая позволяет изменять или расширять функциональность существующих классов, модулей или объектов во время выполнения программы. Этот термин образовался из-за аналогии с идеей того, что вы «насаживаете» (patch) код поверх существующего, подобно обучению обезьяны выполнять новые трюки.

#для_продвинутых
👍14🔥41
Срезы

Срезы (slices) в Python — это способ получения подстроки (подсписка) из последовательности, такой как строка (str), список (list) или кортеж (tuple).

#для_начинающих
👍214