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

Сотрудничество – @HackingIP
Download Telegram
Модуль time: функция time()

возвращает текущее время в секундах с момента начала эпохи (1 января 1970 года, 00:00:00 UTC) в виде числа с плавающей точкой.

#практика | @PyMapChannel
💯3
Функция dir()

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

Если объект имеет метод с именем __dir__(), этот метод будет вызван и вернет список атрибутов. Если объект не предоставляет метод __dir__(), то функция пытается собрать информацию из атрибутов __dict__ и __slots__ объекта.


Механизм dir() по умолчанию ведет себя по-разному с различными типами объектов:
1. Если объект – модуль, список будет содержать имена атрибутов модуля;
2. Если объект – тип или класс, список будет содержать имена атрибутов данного объекта и его родителей.
3. В других случаях список будет содержать имена атрибутов самого объекта, его класса, и классов–родителей.

#практика | @PyMapChannel
👍1
Сохранение картинки с сайта

• В этой программе мы используем функцию get() из модуля requests для отправки GET-запроса на указанный URL и указываем stream=True.
• Это позволяет отложить загрузку тела ответа сервера до тех пор, пока библиотека requests не получит доступ к атрибуту Response.content, который управляется аргументом stream.
• Далее проверяем статус-код ответа: если он равен 200, то изображение можно успешно загрузить.
Мы открываем файл в двоичном режиме с именем полученным из URL.
• С помощью цикла записываем в него данных, которые будут считываться фрагментами по 128 байт.

#практика | @PyMapChannel
👍3
Аннотация типов

Аннотация типов – это явное указание типа ожидаемых и возвращаемых данных при объявлении переменных, классов и функций.

Подсказки типов бывают полезны:
• Это позволяет делать код более понятным и улучшает его читаемость;
• Аннотации типов помогают IDE проводить статический анализ кода, выявлять потенциальные ошибки и предлагать подсказки по работе с данными;
• Существуют сторонние решения статического анализа кода, которые осуществляют проверку типов (например mypy).


Также существует модуль typing, который предоставляет дополнительные возможности для аннотации типов данных.

#практика | @PyMapChannel
💯3👍1
Как работает оператор or

В Python оператор or возвращает первое истинное значение, если таковое имеется, в противном случае возвращает последнее значение в выражении.

В примере функция positive принимает список, и возвращает все найденные положительные числа, либо None, если таковых не нашлось.


Оценку на "правдивость" и "ложность" можно провести с помощью функции bool().

#практика #средний_уровень | @PyMapChannel
Как работает оператор and

В Python оператор and возвращает первое ложное значение, если таковое имеется, в противном случае возвращает последнее значение в выражении.

В примере функция delta принимает список, и возвращает разницу между наибольшим и наименьшим значением, либо 0, если список пустой.


Оценку на "правдивость" и "ложность" можно провести с помощью функции bool().

#практика #средний_уровень | @PyMapChannel
Модуль random: функция sample()

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

Синтаксис:
sample(population, k, *, counts=None)

• population – последовательность или коллекция
• k – количество выбираемых элементов
• counts=None – список элементов для повтора (добавлен в Python 3.9)


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

Важно: начиная с Python 3.9 экземпляры set должны быть преобразованы в список или кортеж.

#практика #средний_уровень | @PyMapChannel
Функции bin(), oct(), hex()

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

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

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

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

#практика #это_база | @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
Генерация 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
Оператор * для упаковки и распаковки коллекций

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

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

#практика #это_база #статьи | @PyMapChannel
👍5
Функция filter()

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

Синтаксис:

filter(function, iterable)

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


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

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

#практика #это_база | @PyMapChannel
👍42
Сжатие изображений

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

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

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

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


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


#практика | @PyMapChannel
Функция isinstance()

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

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

Синтаксис:

isinstance(object, classinfo)

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


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

#практика | @PyMapChannel
41
Объект 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