👍20🤔9🗿2❤1
Тернарный оператор
Тернарный оператор — это синтаксическая конструкция в Python, которая позволяет вам создавать более компактные условные выражения.
Тернарный оператор может быть удобным способом заменить простые
#для_начинающих
Тернарный оператор — это синтаксическая конструкция в Python, которая позволяет вам создавать более компактные условные выражения.
Тернарный оператор может быть удобным способом заменить простые
if-else
выражения, когда вам нужно быстро присвоить значение в зависимости от условия. Однако следует помнить, что слишком сложные выражения в тернарной форме могут ухудшить читаемость кода, поэтому стоит использовать их с умом.#для_начинающих
👍12❤1
Set comprehension
Set comprehension — это способ создания множества в языке программирования Python с использованием синтаксиса генератора. Он позволяет вам создать множество, применяя выражение к каждому элементу последовательности (например, списку или строки) и автоматически устраняя повторяющиеся значения.
#для_начинающих
Set comprehension — это способ создания множества в языке программирования Python с использованием синтаксиса генератора. Он позволяет вам создать множество, применяя выражение к каждому элементу последовательности (например, списку или строки) и автоматически устраняя повторяющиеся значения.
#для_начинающих
👍5😱2
Рисуем карту столицы Австралии
Установить пакет -
Folium
- это Python-библиотека для визуализации географических данных и информации, которая содержит координаты и местоположения.Установить пакет -
pip install folium
В нашем примере мы рисуем карту Канберры - столицы Австралии(Сама карта находится в посте выше).👍18❤2🎉2👨💻1
Pickling
#для_начинающих
Pickling
— это процесс сериализации объектов Python в байтовую последовательность и их обратное восстановление из этой последовательности. Pickling
позволяет сохранять сложные объекты, такие как списки, словари, классы и пользовательские объекты, в байтовом формате, который затем можно сохранить в файле или передать по сети, а затем восстановить обратно в исходное состояние.#для_начинающих
👍21❤2
Фабрика декораторов
Фабрика декораторов — это структура или функция, которая генерирует и возвращает другие декораторы. Декораторы — это функции, которые используются для изменения поведения других функций или методов, путем обертывания (декорирования) их вокруг определенной логики.
Использование фабрики декораторов позволяет создавать более гибкие и параметризованные декораторы. Это может быть полезно, когда вам нужно применить различное поведение декоратора к разным функциям или когда вам необходимо настроить декоратор с определенными параметрами.
#для_начинающих
Фабрика декораторов — это структура или функция, которая генерирует и возвращает другие декораторы. Декораторы — это функции, которые используются для изменения поведения других функций или методов, путем обертывания (декорирования) их вокруг определенной логики.
Использование фабрики декораторов позволяет создавать более гибкие и параметризованные декораторы. Это может быть полезно, когда вам нужно применить различное поведение декоратора к разным функциям или когда вам необходимо настроить декоратор с определенными параметрами.
#для_начинающих
👍14❤3🤔3
Гринлеты
Гринлеты обычно связан с библиотекой Gevent, которая предоставляет механизм асинхронного программирования, используя зеленые потоки (greenlets). Зеленые потоки (greenlets) являются легковесными «корутинами», то есть функциями, которые можно приостанавливать и возобновлять выполнение, а также передавать им управление без необходимости полного переключения контекста, как это происходит с потоками операционной системы.
Gevent предоставляет высокоуровневый интерфейс для работы с гринлетами, позволяя программистам писать асинхронный код, который выглядит подобно синхронному. Это может упростить написание кода, который обрабатывает множество одновременных задач без явного использования многопоточности или многозадачности на уровне операционной системы.
#для_продвинутых
Гринлеты обычно связан с библиотекой Gevent, которая предоставляет механизм асинхронного программирования, используя зеленые потоки (greenlets). Зеленые потоки (greenlets) являются легковесными «корутинами», то есть функциями, которые можно приостанавливать и возобновлять выполнение, а также передавать им управление без необходимости полного переключения контекста, как это происходит с потоками операционной системы.
Gevent предоставляет высокоуровневый интерфейс для работы с гринлетами, позволяя программистам писать асинхронный код, который выглядит подобно синхронному. Это может упростить написание кода, который обрабатывает множество одновременных задач без явного использования многопоточности или многозадачности на уровне операционной системы.
#для_продвинутых
👍15❤3
Middleware (Django)
Middleware (промежуточное программное обеспечение) — это слой программного кода, который работает между различными компонентами приложения для обработки и управления запросами, ответами и другими аспектами обработки данных. Middleware обычно используется в веб-фреймворках и приложениях для обработки HTTP-запросов, но концепция middleware может применяться и в других контекстах.
Основная идея middleware заключается в том, чтобы добавить дополнительную логику или функциональность к обработке запросов и ответов без необходимости изменения основного кода приложения.
#для_начинающих
Middleware (промежуточное программное обеспечение) — это слой программного кода, который работает между различными компонентами приложения для обработки и управления запросами, ответами и другими аспектами обработки данных. Middleware обычно используется в веб-фреймворках и приложениях для обработки HTTP-запросов, но концепция middleware может применяться и в других контекстах.
Основная идея middleware заключается в том, чтобы добавить дополнительную логику или функциональность к обработке запросов и ответов без необходимости изменения основного кода приложения.
#для_начинающих
👍14
Сигналы
Сигналы представляют собой асинхронные уведомления, отправляемые операционной системой процессу или программе в ответ на определенное событие, такое как прерывание, ошибка, запрос завершения и т. д. Сигналы позволяют программам реагировать на различные ситуации, возникающие во время выполнения.
В Python существует модуль
#для_начинающих
Сигналы представляют собой асинхронные уведомления, отправляемые операционной системой процессу или программе в ответ на определенное событие, такое как прерывание, ошибка, запрос завершения и т. д. Сигналы позволяют программам реагировать на различные ситуации, возникающие во время выполнения.
В Python существует модуль
signal
, который предоставляет функциональность для работы с сигналами. Он позволяет программистам создавать обработчики сигналов, которые могут быть вызваны при получении определенных сигналов операционной системы.#для_начинающих
👍11🤔1🎉1
Что такое MRO?
MRO (Method Resolution Order) — это механизм, используемый для определения порядка разрешения методов при наследовании классов и множественном наследовании. MRO определяет, какие методы будут вызываться в случае, когда у наследующего класса есть методы с одинаковыми именами, унаследованными от разных базовых классов.
MRO в Python определяется с помощью алгоритма C3 Linearization (C3 линеаризации). Этот алгоритм гарантирует, что порядок разрешения методов будет согласован и предсказуем вне зависимости от порядка наследования. Он предотвращает проблемы, связанные с амбигуитетами и неоднозначностями в множественном наследовании.
#для_продвинутых
MRO (Method Resolution Order) — это механизм, используемый для определения порядка разрешения методов при наследовании классов и множественном наследовании. MRO определяет, какие методы будут вызываться в случае, когда у наследующего класса есть методы с одинаковыми именами, унаследованными от разных базовых классов.
MRO в Python определяется с помощью алгоритма C3 Linearization (C3 линеаризации). Этот алгоритм гарантирует, что порядок разрешения методов будет согласован и предсказуем вне зависимости от порядка наследования. Он предотвращает проблемы, связанные с амбигуитетами и неоднозначностями в множественном наследовании.
#для_продвинутых
👍18❤3
Что такое линейная сложность сортировки?
Линейная сложность сортировки обозначает алгоритм сортировки, который имеет временную сложность, пропорциональную количеству элементов в сортируемом массиве (или коллекции). В математической нотации линейная сложность обозначается как O(n), где "n" - количество элементов.
Примером линейной сортировки может быть алгоритм «сортировка подсчётом» (counting sort). В этом алгоритме создается дополнительный массив для подсчета количества вхождений каждого элемента. Затем на основе этой информации о количестве вхождений каждого элемента строится отсортированный массив.
#для_начинающих
Линейная сложность сортировки обозначает алгоритм сортировки, который имеет временную сложность, пропорциональную количеству элементов в сортируемом массиве (или коллекции). В математической нотации линейная сложность обозначается как O(n), где "n" - количество элементов.
Примером линейной сортировки может быть алгоритм «сортировка подсчётом» (counting sort). В этом алгоритме создается дополнительный массив для подсчета количества вхождений каждого элемента. Затем на основе этой информации о количестве вхождений каждого элемента строится отсортированный массив.
#для_начинающих
👍11❤3🎉2
Закон Амдала
Закон Амдала — это концептуальное правило, описывающее ограничения ускорения, которое можно достичь при оптимизации только части вычислений в программе. Он был предложен Генри Амдалом в 1967 году и является важным принципом в области параллельных вычислений.
Правило Амдала утверждает, что общий выигрыш в производительности от ускорения какой-либо части программы ограничен долей этой части, которая не может быть параллельно выполнена, плюс долей последовательных вычислений.
#для_продвинутых
Закон Амдала — это концептуальное правило, описывающее ограничения ускорения, которое можно достичь при оптимизации только части вычислений в программе. Он был предложен Генри Амдалом в 1967 году и является важным принципом в области параллельных вычислений.
Правило Амдала утверждает, что общий выигрыш в производительности от ускорения какой-либо части программы ограничен долей этой части, которая не может быть параллельно выполнена, плюс долей последовательных вычислений.
#для_продвинутых
👍11🎉2
Глубокое копирование (deep copy)
Глубокое копирование нужно для создания полной копии объекта, включая все вложенные объекты. Это важно для изменяемых объектов, таких как списки, чтобы изменения в копии не затрагивали оригинал.
Когда мы вызываем глубокое копирование, происходит следующее:
- Создается новый контейнерный объект (список, словарь и т. д.);
- Для каждого элемента исходного объекта рекурсивно вызывается глубокое копирование:
- Если элемент является изменяемым объектом (списком, словарем), то создается его копия с рекурсивным копированием вложенных элементов;
- Если элемент неизменяемый (число, строка) - он просто копируется как есть;
- Копии вложенных объектов вставляются в копию исходного объекта.
#это_база
Глубокое копирование нужно для создания полной копии объекта, включая все вложенные объекты. Это важно для изменяемых объектов, таких как списки, чтобы изменения в копии не затрагивали оригинал.
Когда мы вызываем глубокое копирование, происходит следующее:
- Создается новый контейнерный объект (список, словарь и т. д.);
- Для каждого элемента исходного объекта рекурсивно вызывается глубокое копирование:
- Если элемент является изменяемым объектом (списком, словарем), то создается его копия с рекурсивным копированием вложенных элементов;
- Если элемент неизменяемый (число, строка) - он просто копируется как есть;
- Копии вложенных объектов вставляются в копию исходного объекта.
#это_база
👍14🎉1
Ключевое слово self
Ключевое слово
#для_начинающих
Ключевое слово
self
используется в методах классов для ссылки на текущий экземпляр (объект) класса. Оно является обязательным первым параметром в определении большинства методов классов. Когда вы вызываете метод объекта класса, Python автоматически передает этому методу ссылку на сам объект в виде аргумента self
.#для_начинающих
👍13❤1
Функция id()
Функция
Обратите внимание, что идентификатор объекта может измениться во время выполнения программы, если объект перемещается в памяти. Поэтому id() полезно для определения, указывают ли две переменные на один и тот же объект, но не следует полагаться на него для других целей, таких как сравнение объектов на идентичность.
#для_продвинутых
Функция
id()
используется для получения уникального идентификатора объекта. Этот идентификатор является целым числом, которое уникально для каждого объекта в рамках выполнения программы. Функция id()
принимает один аргумент, который представляет собой объект, и возвращает его идентификатор.Обратите внимание, что идентификатор объекта может измениться во время выполнения программы, если объект перемещается в памяти. Поэтому id() полезно для определения, указывают ли две переменные на один и тот же объект, но не следует полагаться на него для других целей, таких как сравнение объектов на идентичность.
#для_продвинутых
👍11❤5
classmethod
classmethod — это декоратор в Python, который используется для определения методов класса, которые не принимают экземпляр класса (self) в качестве первого аргумента, а вместо этого принимают класс (cls) в качестве первого аргумента. Эти методы могут использоваться для операций, которые связаны с самим классом, а не с его экземплярами.
#для_начинающих
classmethod — это декоратор в Python, который используется для определения методов класса, которые не принимают экземпляр класса (self) в качестве первого аргумента, а вместо этого принимают класс (cls) в качестве первого аргумента. Эти методы могут использоваться для операций, которые связаны с самим классом, а не с его экземплярами.
#для_начинающих
👍16❤2
PYTHONOPTIMIZE
Вы можете установить значение
#для_продвинутых
PYTHONOPTIMIZE
— это переменная среды в Python, которая используется для оптимизации выполнения кода на языке Python. Эта переменная определяет уровень оптимизации, который применяется к коду при его выполнении.Вы можете установить значение
PYTHONOPTIMIZE
в соответствующей переменной среды перед запуском интерпретатора Python, чтобы управлять уровнем оптимизации ваших программ. Это установит уровень оптимизации на 2 для выполнения my_script.py
.#для_продвинутых
👍9❤4
Обезьяний патч
Обезьяний патч (Monkey patch) в Python — это техника, которая позволяет изменять или расширять функциональность существующих классов, модулей или объектов во время выполнения программы. Этот термин образовался из-за аналогии с идеей того, что вы «насаживаете» (patch) код поверх существующего, подобно обучению обезьяны выполнять новые трюки.
#для_продвинутых
Обезьяний патч (Monkey patch) в Python — это техника, которая позволяет изменять или расширять функциональность существующих классов, модулей или объектов во время выполнения программы. Этот термин образовался из-за аналогии с идеей того, что вы «насаживаете» (patch) код поверх существующего, подобно обучению обезьяны выполнять новые трюки.
#для_продвинутых
👍14🔥4❤1
Срезы
Срезы (slices) в Python — это способ получения подстроки (подсписка) из последовательности, такой как строка (str), список (list) или кортеж (tuple).
#для_начинающих
Срезы (slices) в Python — это способ получения подстроки (подсписка) из последовательности, такой как строка (str), список (list) или кортеж (tuple).
#для_начинающих
👍21❤4