Python Map | Обучение
246 subscribers
196 photos
4 videos
1 file
85 links
Образовательный канал для программистов на Python 🐍

Сотрудничество – @HackingIP
Download Telegram
Функция filter()

Функция filter() в Python используется для фильтрации (отбора) элементов последовательности, основываясь на заданном условии.

Синтаксис:

filter(function, iterable)

где:
function - функция, которая возвращает True или False для каждого элемента в итерируемом объекте;
iterable - итерируемый объект, в котором производится фильтрация.


Функция filter() возвращает итератор, содержащий элементы, для которых функция возвращает True.

Как правило, вместо filter можно использовать генераторы списков.

#практика #это_база | @PyMapChannel
👍42
Модуль textwrap: функция wrap

Функция wrap() модуля textwrap разбивает один абзац (строку) text по строкам так, что каждая строка имеет не более width символов в длину. Возвращает список строк, без завершающего символа новой строки \n.

Синтаксис:

textwrap.fill(text, width=70, **kwargs)

где:
text - строка, которую вы хотите отформатировать
width - максимальная ширина отформатированной строки (по умолчанию 70 символов)

**kwargs - необязательные аргументы класса TextWrapper, такие как initial_indent, subsequent_indent, expand_tabs и другие, которые управляют поведением форматирования.


Установка библиотеки:
pip install textwrap3


#библиотеки | @PyMapChannel
3👍1
Сжатие изображений

Этот код позволяет, используя библиотеку PIL (Python Imaging Library), открыть исходное изображение из файла "original.png" и сохранить сжатую и оптимизированную версию изображения в файл "compressed.png".

Дополнительно, этот код выводит размер файла исходного и модифицированного изображения в килобайтах (Кб).

Параметр optimize=True, метода Image.save указывает на использование оптимизации для сжатия файла изображения с минимальной потерей качества.

Также можно указать необязательный параметр quality, определяющий процентное значение качества сжатия от 0 до 100 (по умолчанию 75). что позволяет балансировать между качеством и размером файла.


Установка библиотеки:
pip install pillow


#практика | @PyMapChannel
«Странное» поведение % в Python

В отличие от C, Java или JS, оператор остатка от деления нацело % в Python всегда возвращает число, имеющее тот же знак, что и делитель.

Иногда это может давать «странный» результат при работе с отрицательными числами.

К примеру, сколько будет -5 % 4 ?
В ответе будет: 3 # вместо ожидаемого -1

Объяснение:
В Python оператор % работает следующим образом
mod = n - math.floor(n / base) * base

Для вопроса выше выше:
mod = -5 - math.floor(-1.25) * 4
mod = -5 - (-2*4)
mod = 3


В то время как другие языки используют усечение (int), вместо округления вниз (math.floor):
mod = n - int(n / base) * base

Что приводит к:
mod = -5 - int(-1.25) * 4
mod = -5 - (-1*4)
mod = -1


Ставьте «❤️»


#теория | @PyMapChannel
5🤓2
Python Map | Обучение
«Странное» поведение % в Python В отличие от C, Java или JS, оператор остатка от деления нацело % в Python всегда возвращает число, имеющее тот же знак, что и делитель. Иногда это может давать «странный» результат при работе с отрицательными числами. К…
Такое поведение выбрано вместо поведения C, потому что неотрицательный результат часто более полезен.

Примером может служить вычисление дней недели. Если сегодня вторник (день № 2), какой день недели будет за N дней до этого? В Python мы можем вычислять с помощью:
return (2 - N) % 7


Но в C, если N ≥ 3, мы получаем отрицательное число, которое является недопустимым числом, и нам нужно вручную исправить это, добавив 7:
int result = (2 - N) % 7;
return result < 0 ? result + 7 : result;


#теория | @PyMapChannel
👍1
Модуль secrets

Модуль secrets в Python предоставляет функции для генерации криптографически безопасных случайных чисел, строк и выборов из последовательностей.

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

Модуль secrets следует использовать вместо генератора псевдослучайных чисел модуля random, который в свою очередь предназначен для моделирования и симуляции, а не для защиты или криптографии.

#библиотеки | @PyMapChannel
🔥6
Функция isinstance()

Функция isinstance() в Python позволяет проверить, является ли объект экземпляром определенного класса или его подклассом.

Она вернет True, если проверяемый объект object является экземпляром любого указанного в classinfo класса (классов) или его подкласса.

Синтаксис:

isinstance(object, classinfo)

где:
object - объект, который нужно проверить;
classinfo - класс или кортеж классов, к которым мы хотим проверить принадлежность объекта.


Начиная с Python 3.10, аргументом classinfo может быть объединением нескольких классов, например, int | str.

#практика | @PyMapChannel
41
Модуль SymPy

Модуль SymPy — это мощная и простая в использовании библиотека для выполнения символьных вычислений на Python.

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


Установка библиотеки:
pip install sympy


#библиотеки | @PyMapChannel
🔥31
Объект Ellipsis "..."

Ellipsis в Python - это специальный объект, который обозначается тремя точками "..." и используется в Python в различных контекстах.


Вот самые распространенные варианты его использования:

• В качестве содержимого для функции или класса, которых вы еще не реализовали:
class MyClass:
def method(self):
# Этот код пока не реализован
...


• В аннотациях типов для указания возвращаемого типа вызываемого объекта без указания сигнатуры вызова, заменив список аргументов на "...":
from typing import Callable

def my_fn(func: Callable[..., str], *args) -> Callable[..., str]:
...


• В аннотациях типов для указания однородных кортежей одного типа произвольной длины :
from typing import Tuple

def my_fn(arg: Tuple[int, ...]) -> None:
...


• В NumPy для создания срезов в многомерных структур данных:
from numpy import arange

arr = arange(16).reshape(2, 2, 2, 2)

arr[..., 0].flatten()

# Эквивалентно
arr[:,:,:, 0].flatten()


#практика | @PyMapChannel
🤯1
Модуль math: объект nan

Константа math.nan это особый объект типа float, который называется NaN (Not a Number). Можно также создать с помощью float("nan").

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


Для проверки соответствия числа NaN, необходимо использовать функцию math.isnan() вместо операторов is или ==.

#практика | @PyMapChannel
Модуль zipfile

Встроенный модуль zipfile в Python обеспечивает широкие возможности работы с ZIP-архивами, включая создание, чтение, запись, добавление и просмотр содержимого файлов в архиве ZIP.

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

После этого мы вызываем метод extractall(), который извлекает все файлы из архива в текущую директорию, где расположен скрипт Python.


Этот код полезен при необходимости просмотра содержимого архива ZIP и извлечения всех файлов из него.

🐍 Python Map | Обучение
2🤯21👍1
😎 Отображение смайлов в Python

Использование Unicode:
Каждый смайл имеет уникальный код в стандарте Unicode. Вы можете использовать комбинацию \U и этого кода для отображения смайлов непосредственно в вашем коде.

Использование коротких имен CLDR:
Помимо Unicode, смайлы также имеют короткие имена CLDR (Common Locale Data Repository), которые можно использовать с комбинацией \N.

💾 Список смайлов (имя + Unicode)

🐍 Python Map | Обучение
😎2🔥1
Модуль spellchecker

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

Основные возможности:

1. Проверка слов: определяет, есть ли написанное слово в словаре.

2. Исправление ошибок: предлагает варианты исправления для неверно написанных слов.

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


Установка библиотеки:
pip install pyspellchecker


Также есть возможность загрузить дополнительные слова в словарь, чтобы они не помечались как ошибочные.

🐍 Python Map | Обучение
Модуль inspect: функция getmodule

Функция getmodule из модуля inspect позволяет получить модуль, в котором определен переданный объект (функция, класс, метод или экземпляр).

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


Функция возвращает объект модуля, в котором определён указанный объект. Если объект не принадлежит ни одному модулю (например, был создан динамически), функция может вернуть None.

🐍 Python Map | Обучение
🔥21👍1
Модуль prettytable

Модуль prettytable в Python используется для создания и отображения красивых ASCII таблиц в консольных приложениях.

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


Кроме того, библиотека поддерживает чтение данных из CSV, HTML или курсора базы данных.


Установка библиотеки:
pip install prettytable


🐍 Python Map | Обучение
🔥31
Деструктурирующее присваивание

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

a, b = range(2)
# a = 0, b = 1

(a, b) = {1: "one", 2: "two"}
# a = 1, b = 2

[a, b] = {3, 5}
# a = 4, b = 5

Левая сторона не является реальным кортежем или списком, а задает структуру для объектов a и b, подобно сопоставлению с шаблоном.


a, b = 42, [16, 72]
# a = 46, b = [16, 72]

c, [d] = 42, [16, 72]
# ValueError: too many values to unpack (expected 1)

Таким образом, множественное присваивание выполняет две задачи: присваивает значения и проверяет количество элементов.


В качестве крайнего случая синтаксис также позволяет указывать списки присвоения нулевой длины.

[] = []


Левая и правая части [] - это принципиально разные вещи. Правая часть … = [] обозначает фактический список без элементов. Левая часть [] = … просто обозначает "нулевые имена".

🐍 Python Map | Обучение
👍2🤯2
Модуль pyscreenshot

Pyscreenshot — кроссплатформенная библиотека для создания скриншотов в Python, поддерживающая Windows, macOS и Linux. Она легко интегрируется с другими модулями и предлагает удобный интерфейс для захвата изображений.

На картинке показан пример, как сделать скриншот всего экрана и сохранить его в файл.

Установка библиотеки:
pip install pyscreenshot


🐍 Python Map | Обучение