Telegram Web Link
Forwarded from Python RU
🖥 Сорок семь передовых методов рефакторинга для улучшения кода Python

Мы рассмотрим методы и фрагменты кода для документации Python, кодирования, тестирования, проверки и непрерывной интеграции.

Есть примеры кода Python до и после, в которых применяется каждый метод.

➡️ Читать дальше

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python RU
🖥 Понимание lambda-функций в Python с примерами

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

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

По сути, lambda-функция, которая принимает параметр x и возвращает его, выглядит так:

func = lambda x : x
Обратите внимание, как мы используем здесь ключевое слово lambda. И это по сути та же самая ситуация, когда функция, определенная в python, просто возвращает себя:

def func(x):
return x

А теперь давайте приведем еще один пример того, какие другие варианты использования lambda могут быть в одной и той же строке в быстрой последовательности:

print((lambda x: x + 10)(90))
output:
100


➡️ Читать дальше

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python 🇺🇦
Колекція slots

Python використовує dict для зберігання атрибутів екземпляра об'єкта. Це корисно, коли в тебе є довільна кількість атрибутів. У невеликих класах це вже проблема – dict витрачає багато оперативної пам'яті. Python не може просто так виділити статичний обсяг пам'яті для зберігання всіх атрибутів. Для цього потрібно використати slots. Ти відразу вказуєш на всі очікувані атрибути. Таким чином, можна знизити використання оперативної пам'яті майже на 40-50 відсотків.

👀 Відео, котре допоможе розібратися із slots.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Decimal та Fraction

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

Для отримання більш точних результатів можна використовувати клас Decimal, але і його може не вистачити в деяких випадках.

У такому разі, для ідеальних обчислень краще використовувати клас Fraction, бо він працює з числами у вигляді раціональних дробів.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Параметри *args та **kwargs

Усі хоч раз бачили такий запис, і зараз ми дізнаємося, що то за символи. Одразу скажу, що args і kwargs — загальноприйняті імена змінних, а розбирати ми будемо зірочки перед ними.

У прикладі функція приймає обов'язковий аргумент value, а інших аргументів вона ніби то не чекає. У такому разі *args пакує всі не іменовані аргументи в кортеж, а **kwargs – усі іменовані у словник.

Конструкція з *args, **kwargs виходить досить корисною, якщо ми не знаємо, хто і в яких цілях буде використовувати нашу функцію. Тобто, ми можемо запхати в аргументи практично будь-що.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Знаходимо схожі рядки

У стандартній бібліотеці Python існує модуль difflib, який має метод get_close_matches.

Цей метод шукає "найкращі" можливі збіги. Перший аргумент задає рядок, другий - список, в якому виконується пошук.

Також у метод можна передати необов'язковий аргумент n, який задає максимальну кількість збігів, що повертаються.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Створюємо безкінечний ітератор

Функція cycle() з itertools приймає на вхід об'єкт, що ітерується, і створює нескінченний ітератор, що циклічно повертає елементи даного об'єкта.

Фішка полягає в тому, що коли елементи послідовності закінчуються, ітерація починається знову з першого елемента.

Але якщо ви проходите циклом по такому ітератору, то важливо передбачити вихід з циклу, інакше він стане нескінченним (як у нас в першому випадку на картинці).

Ми також можемо скористатися islice(), який поверне ітератор по підмножині переданого об'єкта.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Виводимо вкладені словники та списки

При виведенні вкладених словників та списків за допомогою звичайного print() ми отримуємо все в один рядок та у нерозбірливому вигляді.

Але у стандартній бібліотеці є модуль pprint, котрий допоможе вивести подібну справу у гарному форматі – достатньо в коді замінити print() на pprint.pprint().

З цікавих аргументів є depth, що відповідає за глибину вкладеності при виведенні, а також width, який відповідає за ширину виведення в консолі.

#practice // Python 🇺🇦
Forwarded from Bohdan VR 🇺🇦
Це ти ще rich не ставив, там ще більше цікавого
Forwarded from Python 🇺🇦
Генерація капчі

Сьогодні покажемо створення найпростішої капчі. Для цього нам знадобиться модуль captcha та Pillow, який використовується для створення зображень у captcha.

Все максимально просто, за нас по суті все робить написаний у модулі код. Створюємо об'єкт зображення ImageCaptcha, на який буде нанесений текст. Після чого викликаємо метод write із заданим текстом та ім'ям файлу, в який буде записано зображення.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
isdisjoint

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

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Отримуємо вихідний код об'єкта

Вбудований модуль inspect допомагає розробникам досліджувати вже написані програми.

На разі поговоримо лише про getsource(), який повертає весь вихідний код функції, класу чи модуля у вигляді рядка.

До аргументів достатньо передати необхідний об'єкт. Але важливо відзначити, що вбудовані функції не вдасться проінспектувати.

#practice // Python 🇺🇦
Ну для имён есть faker, речки думаю надо апи искать хз
Forwarded from Bohdan VR 🇺🇦
Forwarded from Python 🇺🇦
Трюк із f-strings

Думаю, про f-strings як метод форматування вже всі знають. Вони з'явилися ще в Python 3.6.

А в оновленні 3.8 їм додали ще одну класну фічу — можна виводити ім'я змінної і одночасно її значення, додавши символ так само як показано на малюнку.

#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Emoji

Для виведення emoji в python існує кілька методів.

1. Так як всі emoji по суті є Unicode символами, то ми можемо використовувати коди символів з Unicode-таблиці, попередньо перед виведенням замінюючи в коді + на 000.

2. У всіх emoji існують короткі CLDR імена, які ми також можемо використовувати для виведення.

3. Можна також використовувати модуль emoji. У функцію emojize передається ім'я CLDR, пробіли в якому замінені на нижні підкреслення і додані двокрапки на кінцях.

#practice // Python 🇺🇦
Forwarded from Valentyn
Цікаво)
2025/07/02 02:04:44
Back to Top
HTML Embed Code: