Python tricks | Хитрости Питона
5.76K subscribers
2.21K photos
26 videos
1 file
2.52K links
Здесь вы найдете лучшие практики и приёмы, которые используют опытные программисты.

Сотрудничество: @SIeep_Token

Мы на платформе: https://telegram.me/python_tricks

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
self() для обращения объекта к себе

В данном случае self позволяет перемножить элементы списка на 2.

🔗 Python tricks
Загонка пользовательского ввода

Сотрудничество map(), input() и list() позволит поместить весь пользовательский текст в список. Это может пригодиться при расчете эмоциональной окраски текста, ведь слова предстоит потом возвращать к исходной форме

🔗 Python tricks
Функция math.gcd()

Функция math.gcd() используется для вычисления наибольшего общего делителя (НОД) двух целых чисел. НОД — это наибольшее число, которое является делителем обоих чисел.

Синтаксис:
math.gcd(a, b)

🔗 Python tricks
Библиотека Qiskit

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

Вы можете изучить документацию Qiskit для получения более подробной информации и примеров использования.

🔗 Python tricks
Twisted

Twisted — это асинхронный фреймворк для разработки сетевых приложений на языке Python. Он предоставляет реализацию множества протоколов, таких как TCP, UDP, SSL/TLS, DNS, и других, используя асинхронный стиль программирования.

Код выше создает TCP-сервер, прослушивающий порт 1234, и при подключении клиента создает экземпляр MyProtocol, который обрабатывает данные в методе dataReceived. В приведенном примере, сервер просто отправляет обратно полученные данные.

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

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

🔗 Python tricks
Недостатки map()

К недостаткам map(), так же как и в случае с filter(), можно отнести «ленивую оценку» (Lazy Evaluation). Создатели языка сделали немало в 3-й версии, чтобы улучшить производительность языка, и потому вместо обработанного объекта по умолчанию нам возвращается ссылка на итератор. Пока мы не обернем ее в list() или другой метод, обработка функцией-дочкой еще не произошла.

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

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

Для начала используем метод translate для удаления знаков препинания из исходной строки. Модуль string предоставляет строку punctuation, содержащую все знаки препинания. Метод translate использует таблицу перевода для удаления указанных символов.

Затем приводим текст к нижнему регистру, чтобы учесть все слова независимо от регистра. После этого используем метод split() для разделения текста на список слов.

Создаём пустой словарь word_count для подсчета вхождений каждого слова. Затем, используя цикл for, проходимся по списку слов и обновляем счетчик в словаре. Если слово уже есть в словаре, увеличиваем его счетчик на 1; если нет, добавляем его в словарь с начальным счетчиком 1.

Наконец, возвращаем словарь word_count, который содержит количество вхождений каждого слова в тексте.

🔗 Python tricks
string.strip

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

🔗 Python tricks
Рандомные координаты

Про комикс, который вызывается с помощью import antigravity слышали все (если  вы его не видели, то ловите). Но если покопаться, можно найти пасхалку в пасхалке: в модуле antigravity.py  можно найти функцию geohash, которая открывает другой комикс и генерирует случайные координаты.

🔗 Python tricks
Шифр Цезаря

Модуль this.py, который выводит Zen of Python, выглядит так.

Строка s зашифрована с помощью ROT13 — все буквы сдвинуты на 13 позиций. Кстати, так же иногда скрывают спойлеры, что многих бесит.

🔗 Python tricks
string.lower

Метод lower() преобразует все символы верхнего регистра в строке в символы нижнего регистра. Если символы верхнего регистра отсутствуют, возвращается исходная строка. Для преобразования строки в верхний регистр используй upper().

🔗 Python tricks
Классика: Zen of Python от Тима Питерса

Zen of Python — 19 принципов программирования на Python, написанные разработчиком Тимом Питерсом. И единственная «пасхалка», которую официально указали в Руководстве.

🔗 Python tricks
Мысли о любви

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

🔗 Python tricks
set.isdisjoint

Метод isdisjoint() возвращает значение True, если два множества не имеют между собой общих элементов. В противном случае возвращается False. Ты также можешь передавать итерации, такие как список, кортеж, словарь или строку. В этом случае isdisjoint() сначала преобразует итерации в множества. Затем происходит проверка, не являются ли они непересекающимися.

🔗 Python tricks
Дядя Барри

1 первого апреля 2009 года Гвидо ван Россум заявил, что уходит в отставку, чтобы сосредоточиться на покорении Эвереста, и теперь официально значится как Benevolent Dictator Emeritus Vacationing Indefinitely from the Language (BDEVIL) — или Великодушный почетный диктатор, отдыхающий от языка в течение неопределенного срока. На его место якобы пришел Барри Уорсоу (или Дядя Барри). И тут же ввел несколько изменений и обругал Python 3.0 и Си.

Все это оказалось первоапрельской шуткой, отголоски которой все еще можно найти в интерпретаторе.

🔗 Python tricks
Хэши

Хеш — фиксированное целое число, идентифицирующее конкретную величину. Можно ли найти хеш бесконечности или NaN? В Python да.

🔗 Python tricks
Типы не для слабонервных

Если проверить справку для types.CodeType, то можно узнать, что на эту тему думает создатель языка.

🔗 Python tricks
Превращение списка в одну строку

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

Но есть более быстрый и эффективный способ выполнения той же задачи с помощью одной строки кода.

🔗 Python tricks
Get Method для словаря

Большинство разработчиков используют скобки, чтобы получить значение из словаря. Но сейчас рекомендуется использовать Get method.

При использовании метода скобок выдается ошибка, если ключ отсутствует. С помощью Get method вы получите “None” .

🔗 Python tricks
string.swapcase

Метод swapcase() возвращает строку, преобразуя все символы в противоположный регистр (прописные буквы в строчные и наоборот). Для преобразования строки в нижний регистр используй метод lower(). Аналогично, если для преобразования строки в верхний регистр используй upper().

🔗 Python tricks