Разъяснивший Python
8.18K subscribers
2.43K photos
40 videos
30 files
2.28K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
Локальный переводчик

Мы живем в многоязычном мире. А поскольку каждый человек может выучить не так уж много языков, то, чтобы понимать друг друга, нам нужны переводчики. Переводчиком может быть и программа. Для создания таких программ в Python есть специальная библиотека — Translator.

Разъяснивший Python
Метод remove() для удаления элемента из списка

В этом списке есть строки и целые числа. Есть повторяющиеся элементы: строка «Mars» и число 12.

Разъяснивший Python
Второстепенные (ч.1)

Учитывая, что a это число, ++a и --a оба являются допустимыми операторами Python, но ведут себя по-другому по сравнению с аналогичными операторами в таких языках, как C, C ++ или Java.

В грамматике Python нет ++ оператора. На самом деле это два + оператора.

++a разбирается как, +(+a) что переводится как a. Аналогично, вывод инструкции --a может быть оправдан.

В этом потоке StackOverflow обсуждается обоснование отсутствия операторов увеличения и уменьшения в Python.

Разъяснивший Python
Второстепенные (ч.2)

Вы, должно быть, знаете о операторе Walrus в Python. Но слышали ли вы когда-нибудь о операторе space-invader?

Он используется в качестве альтернативного оператора увеличения вместе с другим

Эта шутка взята из твита Рэймонда Хеттингера. Оператор space invader на самом деле просто неправильно отформатирован a -= (-1). Что эквивалентно a = a - (- 1). Аналогично для a += (+ 1) случая.

Разъяснивший Python
👍2
Оператор обратной импликации.

В Python есть недокументированный оператор обратной импликации.

Если вы замените False и True на 0 и 1 и выполните математические вычисления, таблица истинности эквивалентна оператору обратной импликации.

Разъяснивший Python
Оператор @

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

Оператор @ был добавлен в Python 3.5 с учетом интересов научного сообщества. Любой объект может перегрузить matmul магический метод, чтобы определить поведение для этого оператора.

Разъяснивший Python
Сколько может хранить переменных функция?

Python использует 2 байта для хранения локальных переменных в функциях. Теоретически это означает, что в функции может быть определено только 65536 переменных. Однако в python встроено удобное решение, которое можно использовать для хранения более 2 ^ 16 имен переменных. Следующий код демонстрирует, что происходит в стеке, когда определено более 65536 локальных переменных (Внимание: этот код печатает около 2 ^ 18 строк текста, так что будьте готовы!)

Разъяснивший Python
🤯1
Разбей и властвуй: как создать кастомный токенизатор в SpaCy

Статья показывает, как создавать кастомные токенизаторы в SpaCy для специфических задач: от разбивки текста по уникальным правилам до обработки экзотических языков программирования. Практические примеры включены.

Читать...

Разъяснивший Python
Print

Иногда print метод может выводить значения не сразу.

Это выведет wtfpython через 3 секунды из-за end аргумента, потому что выходной буфер очищается либо после обнаружения, \n либо когда программа завершает выполнение. Мы можем принудительно очистить буфер, передав flush=True аргумент.

Разъяснивший Python
Count

'abc'.count('') == 4. Вот приблизительная реализация count метода, которая сделала бы вещи более понятными.

Такое поведение обусловлено сопоставлением пустой подстроки ('') с фрагментами длины 0 в исходной строке.

Разъяснивший Python
generator expressions

Попробуем использовать генераторные выражения (для получения среза будем использовать функцию islice из itertools, которая возвращает итератор по срезу)

Разъяснивший Python
Увеличиваем размер выборки и прокрашиваем серые метрики: неочевидная ошибка при проведении А/B — тестов

В этой статье я постараюсь простым языком рассказать о последствиях, к которым может привести слепой запуск A/B-тестов без предварительного А/А-тестирования.

Читать...

Разъяснивший Python
Как объединить 5 языков программирования в одном Python проекте?

Цель статьи: попробовать написать одно приложение, где будет использоваться код, написанный на 5 разных языках программирования. Благо на сегодняшний день уже реализовано много библиотек, которые позволяют без лишних проблем это сделать.

Читать...

Разъяснивший Python
Оператор walrus (:=)

В этом примере мы используем оператор walrus (:=) для одновременного присваивания значения переменной line и проверки условия внутри цикла while. Это позволяет нам сократить код, объединив операции присваивания и проверки в одну строку.

Разъяснивший Python
👍31🔥1
Функция partial

В этом примере мы используем функцию partial для создания новых функций double и triple на основе функции multiply, фиксируя аргумент y на значениях 2 и 3 соответственно. Теперь новые функции могут быть вызваны с одним аргументом, в то время как фиксированный аргумент уже задан.

Разъяснивший Python
👎1
Модуль asyncio

В этом примере мы используем модуль asyncio для создания асинхронной программы. Определяем асинхронную корутину my_coroutine, которая выполняет асинхронную операцию (в данном случае, ожидание 1 секунды). Затем определяем асинхронную функцию main, которая вызывает две корутины одновременно с помощью asyncio.gather. В конце мы используем asyncio.run для запуска основной функции main.

Разъяснивший Python
Декоратор @property

В этом примере мы определяем класс Circle с атрибутом radius и методом area, который вычисляет площадь окружности. Мы добавляем декоратор @property перед методом area, чтобы можно было обращаться к нему как к свойству объекта circle, без явного вызова метода.

Разъяснивший Python
Сортировка HTML-элементов по названию

С помощью метода find_all мы можем сортировать все элементы, которые соответствуют некоторым критериям.

Разъяснивший Python
Сортировка HTML-элементов по CSS-селектору

С помощью методов select и select_one мы можем использовать некоторые селекторы CSS для сортировки элементов.

Разъяснивший Python
Создания декораторов с помощью декоратора @wraps

В этом примере мы используем модуль functools и декоратор @wraps, чтобы создать декоратор my_decorator. Декоратор @wraps применяется к внутренней функции wrapper и копирует метаданные (имя функции, документацию и др.) из декорируемой функции func. Это полезно, чтобы сохранить исходные атрибуты функции и предотвратить их затирание. В примере мы декорируем функцию my_function с помощью @my_decorator и выполняем ее.

Разъяснивший Python