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

Сотрудничество – @HackingIP
Download Telegram
Генерация HEX-цветов

В веб-разработке часто применяют HEX-цвета, которые представляют цвет в формате RGB с использованием шестнадцатеричной системы счисления.

В данном коде каждый цветовой канал (red, green, blue) преобразуется в двузначное шестнадцатеричное число с помощью форматирования f-строки {channel:02x}, где:

channel – переменная, содержащая значение цветового канала (в диапазоне от 0 до 255, включая его)

x – указывает, что число будет представлено в шестнадцатеричной системе счисления , используя строчные буквы для цифр выше 9
X – можно использовать заглавные буквы для цифр выше 9

02 - означает, что число будет представлено минимум двумя символами, с добавлением нуля спереди, если значение меньше 16₁₀ т.е. 10₁₆


#практика #средний_уровень | @PyMapChannel
2👍1🔥1
Модуль phonenumbers

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

Разбор кода примера:

Функция parse() – разберает (парсит) строку и возвращает соответствующий объект PhoneNumber.

Функция is_valid_number() – проверяет, соответствует ли номер телефона допустимому шаблону.

Затем с помощью функций carrier.name_for_number и geocode.description_for_number , определяем имя провайдера и регион, соответствующие данному номеру телефона.


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


Эта библиотека может быть полезна при разработке приложений, требующих анализа номеров телефонов.

#библиотеки #практика #продвинутый_уровень | @PyMapChannel
👍21
Потоковый ввод sys.stdin

🐍 Потоковый ввод в Python, очень полезный приём, когда вы не знаете сколько строк может вводить пользователь.

#практика #продвинутый_уровень | @PyMapChannel
🔥4🏆1
Методы str.lower() и str.upper()

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

Эти методы очень удобны для сравнения строк без учета регистра.

#практика #это_база | @PyMapChannel
Модуль art: функция tprint()

Функция tprint() из модуля art предназначена для вывода текста в виде ASCII-арт. Она позволяет указать текст, а также выбрать стиль, в котором этот текст должен быть отображен.

Синтаксис:

tprint(text,
font: str = DEFAULT_FONT,
chr_ignore: bool = True,
decoration: Any | None = None,
sep: str = "\n",
space: int = 0)

где:
text - строка текста, который вы хотите вывести;
font - стиль шрифта
chr_ignore - игнорирование неподдерживаемых символов
decoration - оформление текста
sep - символ-разделитель строк
space - расстояние между символами


Узнать все доступные шрифты и оформления:
art.font_list()
art.decor_list()

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


#библиотеки | @PyMapChannel
🆒5
Оператор * для упаковки и распаковки коллекций

⚡️ Оператор * для упаковки и распаковки коллекций предоставляет удобные способы работы с данными переменной длины и упрощает работу с итерируемыми объектами.

Накидайте максимум реакций)

#практика #это_база #статьи | @PyMapChannel
👍5
Функция 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