Разъяснивший Python
8.22K subscribers
2.41K photos
40 videos
30 files
2.26K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
Модуль heapq

Нас интересуют только две функции: nlargest() и nsmallest(). Они позволяют получить n самых больших/маленьких значений в iterable.

В большинстве случаев функции быстрее чем sorted(iterable)[:n]. Их использование можно заметить в Counter.most_common().

#модули
👍141
Модуль collections

Нужно посчитать кол-во элементов в списке? Импортируйте Counter! Нужно, чтобы, если ключа не существует, он создавался? Импортируйте defaultdict.

Нужен кортеж с именованными полями? Воспользуйтесь namedtuple(). Нужна очередь? from collections import deque. Документация

#модули
👍19🔥21👏1
⚡️ Парсим сайты

Нужно узнать заголовок последней новости? Отслеживать цену товара? Или автоматически находить решение на Stackoverflow? Вам поможет Beautiful soup.

Установка: pip install beautifulsoup4

Модуль может парсить HTML и XML файлы и находить на них нужную информацию. Например, найти заголовок (тег h1) или все ссылки на сайте.

Функционал довольно большой и весь список можно найти в документации.

#миниурок #bs4
👍18🤔3🔥1
Метод __call__

Позволяет вызывать класс точно так же, как и функцию. То есть вы без проблем можете написать так: MySuperClass()()()() и попасть в писхушку.

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

#теория
👍23
🔥 Почему 0.1 + 0.2 не будет 0.3

Или коротко о том, как работают числа float. Здесь вы узнаете как хранятся числа с плавающей запятой в памяти, про стандарт IEEE-754 и какие проблемы он нам принёс. Перед просмотром надо знать бинарную систему счисления.

Перейти к просмотру | #видео
🔥9👍5🥰2👏1
⚡️ Тесты в документации

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

Реализуется подобная фича с помощью встроенного модуля doctest. Он ищет текста, которые выглядят как интерактивные сеансы Python (>>>, ... и подобные символы).

Вы можете запускать тесты так же, как в примере, а можно с помощью терминала: python -m doctest -v example.py.

#миниурок #doctest
👍9
Roadmap по Python

Это дорожная карта, составленная более опытными разработчиками, чтобы новички знали с чего начать свой путь и куда двигаться дальше.
👍67💩7👏2😱2
Фокус с type

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

Таким образом мы можем во время выполнения создать новый класс и пользоваться им.

#теория
👍53🥱1👾1
isdecimal() vs isdigit() vs isnumeric()

Эти три метода str используются для определения, является ли строка числом, но у них есть небольшие отличия:

str.isdecimal() — проверяет, является ли строка только набором цифр (1-9). В то время как:

· str.isdigit() вернёт True, даже если в строке есть надстрочные и подстрочные цифры (² или u00B2).

· str.isnumeric() вернёт True, даже если это дробь (½ или u00BD).

#объяснение
👍46
Правила документации

class Post:
"""На первой строке краткое описание объекта. После идёт пустая строка (это обязательно).

После идёт подробное объяснение. Кто он,
что он делает и какие параметры принимает.
Документировать можно в несколько абзацев.
Писать доки можно для всего: функции, класса, модуля.
Но если вы мне не доверяете, можете почитать PEP257,
там разработчики рассказывают, как объяснять код.
"""

#теория
👍131
Замыкание

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

Но с этой штукой надо быть осторожнее, она довольно прожорливая. Если в этой ситуации можно обойтись без замыкания, то лучше её не использовать.

#теория
👍12
Немного фактов про Python

Во первых, это не змея. Название пошло в честь «Монти Пайтона» (Monty Python) — ведущего из любимого шоу разработчика «Летающий цирк Монти Пайтона».

Думаете, Python — молодой, современный язык? Но нет, он старше даже Java. Версия Python 1.0 вышла в январе 1994 года. То есть языку сейчас 28 лет.

#факты
👍12👏1
Функция iter

iter(object) возвращает итератор объекта. Но это если в ней только один аргумент, а может быть и два...

В таком случае функция принимает iter(function, end) и выполняет функцию, пока она не вернёт end.

#теория
👍101
Несколько фишек Python

1. Мы можем передать кортеж функции isinstance, тогда она будет проверять, относится ли x к одному из этих типов.

2. round может округлять в обратную сторону. То есть не только до дестых, но и до десяток.

3. В один except можно записывать несколько ошибок на обработку.

#теория
👍25
🔥 Массивы

И нет, я не ошибся. В python действительно есть массивы и находятся они в модуле array. Они меньше занимают памяти, чем списки, но у них есть свои ограничения.

Про массивы, как ими пользоваться и их отличия от списков рассказывается в ролике.

Перейти к просмотру | #видео
3👍3
0x6e 0x75 0x6d 0x65 0x72 0x61 0x6c 0x20 0x73 0x79 0x73 0x74 0x65 0x6d

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

0x для шестнадцатеричной, 0o для восьмеричной и 0b для двоичной системы счисления.

#объяснение
👍30🔥53
Перейдём к основам-основам

В Python есть два типа типов: изменяемые (list, set, dict) и неизменяемые (bool, int, float, complex, tuple, str, frozenset).

Зачем такие сложности? Неизменяемые типы сохраняют данные, не позволяя другим объектам на них повлиять.

#теория
👍30👎2