Forwarded from Python RU
Мы рассмотрим методы и фрагменты кода для документации Python, кодирования, тестирования, проверки и непрерывной интеграции.
Есть примеры кода Python до и после, в которых применяется каждый метод.
@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python RU
Как известно, мы используем функции для автоматизации процессов в программном обеспечении.
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 використовує
👀 Відео, котре допоможе розібратися із
#practice // Python 🇺🇦
Python використовує
dict
для зберігання атрибутів екземпляра об'єкта. Це корисно, коли в тебе є довільна кількість атрибутів. У невеликих класах це вже проблема – dict
витрачає багато оперативної пам'яті. Python не може просто так виділити статичний обсяг пам'яті для зберігання всіх атрибутів. Для цього потрібно використати slots
. Ти відразу вказуєш на всі очікувані атрибути. Таким чином, можна знизити використання оперативної пам'яті майже на 40-50 відсотків. 👀 Відео, котре допоможе розібратися із
slots
.#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Decimal та Fraction
Через те, що дробові числа з плаваючою точкою зберігаються в двійковому вигляді, ми зазвичай працюємо з приблизними значеннями, як у першому варіанті на скрині.
Для отримання більш точних результатів можна використовувати клас
У такому разі, для ідеальних обчислень краще використовувати клас
#practice // Python 🇺🇦
Через те, що дробові числа з плаваючою точкою зберігаються в двійковому вигляді, ми зазвичай працюємо з приблизними значеннями, як у першому варіанті на скрині.
Для отримання більш точних результатів можна використовувати клас
Decimal
, але і його може не вистачити в деяких випадках.У такому разі, для ідеальних обчислень краще використовувати клас
Fraction
, бо він працює з числами у вигляді раціональних дробів.#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Параметри *args та **kwargs
Усі хоч раз бачили такий запис, і зараз ми дізнаємося, що то за символи. Одразу скажу, що
У прикладі функція приймає обов'язковий аргумент
Конструкція з
#practice // Python 🇺🇦
Усі хоч раз бачили такий запис, і зараз ми дізнаємося, що то за символи. Одразу скажу, що
args
і kwargs
— загальноприйняті імена змінних, а розбирати ми будемо зірочки перед ними.У прикладі функція приймає обов'язковий аргумент
value
, а інших аргументів вона ніби то не чекає. У такому разі *args
пакує всі не іменовані аргументи в кортеж, а **kwargs
– усі іменовані у словник.Конструкція з
*args
, **kwargs
виходить досить корисною, якщо ми не знаємо, хто і в яких цілях буде використовувати нашу функцію. Тобто, ми можемо запхати в аргументи практично будь-що.#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Знаходимо схожі рядки
У стандартній бібліотеці Python існує модуль
Цей метод шукає "найкращі" можливі збіги. Перший аргумент задає рядок, другий - список, в якому виконується пошук.
Також у метод можна передати необов'язковий аргумент
#practice // Python 🇺🇦
У стандартній бібліотеці Python існує модуль
difflib
, який має метод get_close_matches
. Цей метод шукає "найкращі" можливі збіги. Перший аргумент задає рядок, другий - список, в якому виконується пошук.
Також у метод можна передати необов'язковий аргумент
n
, який задає максимальну кількість збігів, що повертаються.#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Створюємо безкінечний ітератор
Функція
Фішка полягає в тому, що коли елементи послідовності закінчуються, ітерація починається знову з першого елемента.
Але якщо ви проходите циклом по такому ітератору, то важливо передбачити вихід з циклу, інакше він стане нескінченним (як у нас в першому випадку на картинці).
Ми також можемо скористатися
#practice // Python 🇺🇦
Функція
cycle()
з itertools
приймає на вхід об'єкт, що ітерується, і створює нескінченний ітератор, що циклічно повертає елементи даного об'єкта.Фішка полягає в тому, що коли елементи послідовності закінчуються, ітерація починається знову з першого елемента.
Але якщо ви проходите циклом по такому ітератору, то важливо передбачити вихід з циклу, інакше він стане нескінченним (як у нас в першому випадку на картинці).
Ми також можемо скористатися
islice()
, який поверне ітератор по підмножині переданого об'єкта.#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Виводимо вкладені словники та списки
При виведенні вкладених словників та списків за допомогою звичайного
Але у стандартній бібліотеці є модуль
З цікавих аргументів є
#practice // Python 🇺🇦
При виведенні вкладених словників та списків за допомогою звичайного
print()
ми отримуємо все в один рядок та у нерозбірливому вигляді.Але у стандартній бібліотеці є модуль
pprint
, котрий допоможе вивести подібну справу у гарному форматі – достатньо в коді замінити print()
на pprint.pprint()
.З цікавих аргументів є
depth
, що відповідає за глибину вкладеності при виведенні, а також width
, який відповідає за ширину виведення в консолі.#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Генерація капчі
Сьогодні покажемо створення найпростішої капчі. Для цього нам знадобиться модуль
Все максимально просто, за нас по суті все робить написаний у модулі код. Створюємо об'єкт зображення
#practice // Python 🇺🇦
Сьогодні покажемо створення найпростішої капчі. Для цього нам знадобиться модуль
captcha
та Pillow
, який використовується для створення зображень у captcha
.Все максимально просто, за нас по суті все робить написаний у модулі код. Створюємо об'єкт зображення
ImageCaptcha
, на який буде нанесений текст. Після чого викликаємо метод write
із заданим текстом та ім'ям файлу, в який буде записано зображення.#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
isdisjoint
Метод
#practice // Python 🇺🇦
Метод
isdisjoint()
повертає True
, якщо жоден із елементів не присутній в обох наборах. Інакше він повертає False
. Ви можете використовувати список, кортеж, словник або рядок. У цьому випадку isdisjoint()
спочатку перетворює ітерації у набори, а потім перевіряє, чи не перетинаються вони.#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Отримуємо вихідний код об'єкта
Вбудований модуль
На разі поговоримо лише про
До аргументів достатньо передати необхідний об'єкт. Але важливо відзначити, що вбудовані функції не вдасться проінспектувати.
#practice // Python 🇺🇦
Вбудований модуль
inspect
допомагає розробникам досліджувати вже написані програми.На разі поговоримо лише про
getsource()
, який повертає весь вихідний код функції, класу чи модуля у вигляді рядка.До аргументів достатньо передати необхідний об'єкт. Але важливо відзначити, що вбудовані функції не вдасться проінспектувати.
#practice // Python 🇺🇦
Forwarded from Микита Лук'яниця
Ну для имён есть faker, речки думаю надо апи искать хз
Forwarded from Python 🇺🇦
Forwarded from Python 🇺🇦
Emoji
Для виведення emoji в python існує кілька методів.
1. Так як всі emoji по суті є Unicode символами, то ми можемо використовувати коди символів з Unicode-таблиці, попередньо перед виведенням замінюючи в коді + на
2. У всіх emoji існують короткі CLDR імена, які ми також можемо використовувати для виведення.
3. Можна також використовувати модуль
#practice // Python 🇺🇦
Для виведення emoji в python існує кілька методів.
1. Так як всі emoji по суті є Unicode символами, то ми можемо використовувати коди символів з Unicode-таблиці, попередньо перед виведенням замінюючи в коді + на
000
.2. У всіх emoji існують короткі CLDR імена, які ми також можемо використовувати для виведення.
3. Можна також використовувати модуль
emoji
. У функцію emojize
передається ім'я CLDR, пробіли в якому замінені на нижні підкреслення і додані двокрапки на кінцях.#practice // Python 🇺🇦