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

Сотрудничество – @HackingIP
Download Telegram
Функции bin(), oct(), hex()

Функция bin() преобразует целое число в двоичную строку с префиксом 0b. В двоичных числах используются только цифры 0 и 1.

Функция oct() преобразует целое число в восьмеричную строку с префиксом 0o. В восьмеричных числах используются цифры от 0 до 7.

Функция hex() преобразует целое число в шестнадцатеричную строку с префиксом 0x. В шестнадцатеричных числах используются цифры от 0 до 9 и буквы от A до F для представления значений от 10 до 15.

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

#практика #это_база | @PyMapChannel
🔥3
Байтовые объекты

Байтовые объекты представляют собой последовательность байтов, которая хранит информацию в двоичном формате.

В Python байтовые объекты представлены типами данных bytes и bytearray. Различие заключается в том, что bytes является неизменяемым типом данных, в то время как bytearray - изменяемым.

Также в Python имеется тип данных memoryview, предоставляющий доступ к внутренним данным объекта, который поддерживает буферный протокол, без копирования.

Для создания байтовых объектов можно использовать байтовые литералы (синтаксис схож со строковыми литералами, за исключением того, что добавляется префикс "b").

В Python также существует модуль struct, который позволяет работать с байтовыми данными на низком уровне, осуществляя их упаковку и распаковку.

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


#теория | @PyMapChannel
5
Модуль os

Предустановленный модуль os в Python предоставляет инструменты для взаимодействия с операционной системой.

С его помощью можно выполнять множество задач, таких как управление файлами и директориями, работа с процессами, а также получение информации о системе. Модуль также поддерживает работу с путями файловой системы через интерфейс os.PathLike, что делает его удобным для создания кросс-платформенных скриптов.

Вот некоторые из основных функций модуля:

функция listdir()
функции getcwd() и getcwdb()


#теория | @PyMapChannel
👍3
Модуль os: функция listdir()

Функция listdir() модуля os возвращает список, содержащий имена файлов и директорий в заданном каталоге. Список будет в произвольном порядке и не содержит специальных обозначений ("." и "..").

Синтаксис:
os.listdir(path='.')

Аргумент path – путь к каталогу, принимает объекты, реализующие интерфейс os.PathLike. Если путь имеет байтовый тип, возвращаемые имена файлов также будут байтовыми типами, иначе они будут строковыми.


#практика #средний_уровень | @PyMapChannel
👍2
Модуль os: функции getcwd() и getcwdb()

Функция getcwd() модуля os вернет строку, представляющую текущий рабочий каталог. Функция getcwdb() вернет строку байтов, представляющую текущий рабочий каталог.

Функция getcwdb() использует кодировку UTF-8 в Windows, а не кодовую страницу ANSI.


#практика #средний_уровень | @PyMapChannel
🔥3
Будем делать что-то наподобие плейлиста или серий уроков, оставляя ссылки на добавленные уроки в указатели по темам. Может время от времени будем публиковать основной указатель по темам для новых подписчиков. Ставьте 🔥 реакцию, если думаете что будет удобно. Также можете написать в комментариях темы, которые хотите, чтобы были разобраны на канале.
🔥14
Последовательность и коллекция в Python

Последовательности и коллекции являются ключевые понятиями в Python, служащими для структурирования и хранения информации.

Последовательность – это итерируемый объект, к элементам которого можно обратиться по целочисленному индексу.
Примеры последовательностей: строки (str), списки (list), кортежи (tuple).


Коллекция – это структура данных, которая позволяет хранить и управлять набором элементов. В отличие от последовательностей, элементы в коллекции могут быть неупорядоченными, и могут быть изменяемыми или обеспечивать быстрый поиск по ключу.
Примеры коллекций: словари (dict), множества (set, frozenset), в то же время и последовательности: строки (str), списки (list), кортежи (tuple).


Таким образом, все последовательности являются коллекциями, но не все коллекции являются последовательностями.

#теория | @PyMapChannel
👍3
Генерация 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