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

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

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

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Примечание для словаря (dict) (ч.2)

{} без значений создают словарь, а со значениями, в зависимости от синтаксиса могут создавать как множество, так и словарь.
🔗 Python tricks
Проверка принадлежности элемента данной коллекции c помощью оператора in

x in s
— вернет True, если элемент входит в коллекцию s и False — если не входит
Есть и вариант проверки не принадлежности: x not in s, где есть по сути, просто добавляется отрицание перед булевым значением предыдущего выражения.
🔗 Python tricks
functools.wraps

functools.wraps — это декоратор (decorator), предоставляемый в стандартной библиотеке Python в модуле functools. Он используется для оборачивания (wrapping) функций или методов, чтобы сохранить метаданные и атрибуты оригинальной функции, когда она передается другой функции в качестве аргумента или используется внутри другой функции.

wraps обычно используется в качестве декоратора внутри пользовательских декораторов. Без использования functools.wraps, имя функции и её документацию было бы изменено на имя обернутой функции (wrapper), и документацию из оригинальной функции можно было бы потерять.

🔗 Python tricks
Подгенераторы

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

🔗 Python tricks
Метод count()

Метод count() в Python используется для подсчета количества вхождений заданного элемента (значения) в списке, кортеже или строке. Вот синтаксис этого метода:

count(element)

где element — это значение, которое вы хотите подсчитать в последовательности (списке, кортеже или строке).

🔗 Python tricks
Обход всех элементов коллекции в цикле for in

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

🔗 Python tricks
Обработка элементов (ч.1)

Порядок обработки элементов для не индексированных коллекций будет не тот, как при их создании.

У прохода в цикле по словарю есть свои особенности.

При таком обходе словаря, перебираются только ключи равносильно for elm in my_dict.keys().

🔗 Python tricks
Обработка элементов (ч.2)

При желании можно пройти только по значениям. Но чаще всего нужны пары ключ(key) — значение (value).

Проход по .items() возвращает кортеж (ключ, значение), который присваивается кортежу переменных key, value.
🔗 Python tricks
Factory Boy

Factory Boy — это библиотека для тестирования в Python, которая предназначена для упрощения создания тестовых данных, таких как объекты базы данных.

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

🔗 Python tricks
pgeocode

pgeocode — это библиотека Python, которая предоставляет инструменты для выполнения геокодирования и получения информации о географических местоположениях на основе почтовых индексов (ZIP-кодов) или кодов страны. Это полезно, если вам необходимо преобразовать почтовые индексы в информацию о местоположении, такую как название страны, штата и т. д.

После выполнения этого кода, вы получите информацию о местоположении, связанную с указанным почтовым индексом, включая штат, город, широту и долготу и другие данные, если они доступны.

🔗 Python tricks
dict.pop

Метод pop() удаляет и возвращает элемент из словаря с заданным ключом. Если ключ найден - удаляется/извлекается элемент из словаря. Если ключ не найден - значение указывается вторым аргументом (по умолчанию). Если ключ не найден и аргумент по умолчанию не указан – выдается KeyError.

🔗 Python tricks
Метод .index()

.index() — возвращает минимальный индекс переданного элемента для индексированных коллекций (строка, список, кортеж)
🔗 Python tricks
Forwarded from Apple Media
⚡️ Запускаем розыгрыш новенького iPhone 15 Pro на 256 ГБ!

В честь выхода нового айфона, мы решили разыграть его среди наших подписчиков!

УСЛОВИЯ для участия:
– Подписаться на 3 канала:
1. 1337: IT, ChatGPT, Midjourney
2. Не баг, а фича
3. Apple News
– Нажать кнопку «Участвовать» ниже у поста

Итоги будут 1 ноября на канале. Всем желаем удачи!

Участников: 53838
Призовых мест: 1
Дата розыгрыша: 21:00, 01.11.2023 MSK (2 дня)
Метод isalnum()

Метод isalnum() — это метод строк, который проверяет, состоит ли строка только из букв и/или цифр. Он возвращает True, если все символы в строке являются буквами и/или цифрами, и False в противном случае.

Метод isalnum() полезен, например, при валидации ввода пользователя, когда нужно убедиться, что введенная строка состоит только из букв и цифр.

🔗 Python tricks
super()

super() — это встроенная функция, которая используется для вызова родительского класса. Она позволяет вызывать методы родительского класса из дочернего класса.
Это полезно при наследовании, чтобы использовать функционал базового класса.

Вызов super() ищет следующий класс в цепочке наследования и вызывает этот метод.
Функция принимает аргументы self и cls для связывания с текущим объектом и классом.

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

🔗 Python tricks
Функция dir()

Функция dir() используется для получения списка атрибутов и методов объекта.
Она принимает объект в качестве аргумента и возвращает список его атрибутов и методов в виде строк.

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

С помощью dir() можно получить список ключевых слов языка, передав builtin или builtins в качестве аргумента.
Без аргументов dir() возвращает список имен, определенных в текущей области видимости.

🔗 Python tricks
Особые методы сравнения множеств (set, frozenset)

set_a.isdisjoint(set_b) — истина, если set_a и set_b не имеют общих элементов.

set_b.issubset(set_a) — если все элементы множества set_b принадлежат множеству set_a, то множество set_b целиком входит в множество set_a и является его подмножеством (set_b — подмножество)

set_a.issuperset(set_b) — соответственно, если условие выше справедливо, то set_a — надмножество
🔗 Python tricks
Метод .clear()

.clear() — метод изменяемых коллекций (список, словарь, множество), удаляющий из коллекции все элементы и превращающий её в пустую коллекцию.
🔗 Python tricks
Гайд по магическим методам сравнения

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

1. __cmp__(self, other)
Самый базовый из методов сравнения. Он, в действительности, определяет поведение для всех операторов сравнения (>, ==, !=), но не всегда так, как вам это нужно. __cmp__ должен вернуть отрицательное число, если self < other, ноль, если self == other, и положительное число в случае self > other.
2. __eq__(self, other)
Определяет поведение оператора равенства, ==.
3. __ne__(self, other)
Определяет поведение оператора неравенства, !=.
4. __lt__(self, other)
Определяет поведение оператора меньше, <.
5. __gt__(self, other)
Определяет поведение оператора больше, >.
6. __le__(self, other)
Определяет поведение оператора меньше или равно, <=.
7. __ge__(self, other)
Определяет поведение оператора больше или равно, >=.

🔗 Python tricks
Метод capitalize()

Метод capitalize() используется для преобразования первой буквы строки в заглавную (прописную) букву, а все остальные буквы в строке делаются строчными. Как видно из примера, метод capitalize() изменяет только первую букву строки на заглавную, оставляя все остальные буквы неизменными.

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

🔗 Python tricks
PyBrain

PyBrain — это модульная библиотека машинного обучения для Python.
Ее цель — предложить гибкие, простые в использовании, но все же мощные алгоритмы для задач машинного обучения и разнообразные предопределенные среды для тестирования и сравнения ваших алгоритмов.

В этом примере мы создаем набор данных для классификации с двумя входными и тремя выходными значениями и добавляем данные в набор данных. Затем данные разделяются на обучающую и тестовую выборки и преобразуются для использования с PyBrain.
Далее создается нейронная сеть с двумя входными узлами, тремя скрытыми узлами и тремя выходными узлами и тренер для обучения сети. Сеть обучается в течение 100 эпох и выводится результат на обучающей и тестовой выборках.
🔗 Python tricks