Модуль heapq
Нас интересуют только две функции:
В большинстве случаев функции быстрее чем
#модули
Нас интересуют только две функции:
nlargest()
и nsmallest()
. Они позволяют получить n самых больших/маленьких значений в iterable.В большинстве случаев функции быстрее чем
sorted(iterable)[:n]
. Их использование можно заметить в Counter.most_common()
.#модули
👍14❤1
Модуль collections
Нужно посчитать кол-во элементов в списке? Импортируйте Counter! Нужно, чтобы, если ключа не существует, он создавался? Импортируйте defaultdict.
Нужен кортеж с именованными полями? Воспользуйтесь
#модули
Нужно посчитать кол-во элементов в списке? Импортируйте Counter! Нужно, чтобы, если ключа не существует, он создавался? Импортируйте defaultdict.
Нужен кортеж с именованными полями? Воспользуйтесь
namedtuple()
. Нужна очередь? from collections import deque
. Документация#модули
👍19🔥2❤1👏1
🔥 Всё про 'is'
Многие попадаются на тестах с is просто потому что не знают, как Python кэширует значения. Это видео расскажет о всех подводных камнях этого коварного оператора.
Перейти к просмотру | #видео
Многие попадаются на тестах с is просто потому что не знают, как Python кэширует значения. Это видео расскажет о всех подводных камнях этого коварного оператора.
Перейти к просмотру | #видео
YouTube
Оператор "is" Python сложнее, чем вы думаете
⭐ Курс ООП и Приват канал: https://www.zproger-school.com/?utm_source=yt&utm_medium=no&utm_campaign=pythonis
⭐ Телеграм канал: https://t.me/+xhecBmnnjHI0MzZh
Подводные камни оператора is, которые могут вас удивить.
Многие используют оператор "is" для сравнения…
⭐ Телеграм канал: https://t.me/+xhecBmnnjHI0MzZh
Подводные камни оператора is, которые могут вас удивить.
Многие используют оператор "is" для сравнения…
👍8
⚡️ Парсим сайты
Нужно узнать заголовок последней новости? Отслеживать цену товара? Или автоматически находить решение на Stackoverflow? Вам поможет Beautiful soup.
Установка:
Функционал довольно большой и весь список можно найти в документации.
#миниурок #bs4
Нужно узнать заголовок последней новости? Отслеживать цену товара? Или автоматически находить решение на Stackoverflow? Вам поможет Beautiful soup.
Установка:
pip install beautifulsoup4
Модуль может парсить HTML и XML файлы и находить на них нужную информацию. Например, найти заголовок (тег h1) или все ссылки на сайте.Функционал довольно большой и весь список можно найти в документации.
#миниурок #bs4
👍18🤔3🔥1
Метод __call__
Позволяет вызывать класс точно так же, как и функцию. То есть вы без проблем можете написать так: MySuperClass()()()()и попасть в писхушку.
Его используют в основном для создания классов-декораторов, когда нужно декоратору передать какие-то значения или задать атрибуты.
#теория
Позволяет вызывать класс точно так же, как и функцию. То есть вы без проблем можете написать так: MySuperClass()()()()
Его используют в основном для создания классов-декораторов, когда нужно декоратору передать какие-то значения или задать атрибуты.
#теория
👍23
🔥 Почему 0.1 + 0.2 не будет 0.3
Или коротко о том, как работают числа float. Здесь вы узнаете как хранятся числа с плавающей запятой в памяти, про стандарт IEEE-754 и какие проблемы он нам принёс. Перед просмотром надо знать бинарную систему счисления.
Перейти к просмотру | #видео
Или коротко о том, как работают числа float. Здесь вы узнаете как хранятся числа с плавающей запятой в памяти, про стандарт IEEE-754 и какие проблемы он нам принёс. Перед просмотром надо знать бинарную систему счисления.
Перейти к просмотру | #видео
YouTube
КАК РАБОТАЮТ ЧИСЛА С ПЛАВАЮЩЕЙ ТОЧКОЙ | ОСНОВЫ ПРОГРАММИРОВАНИЯ
КАК РАБОТАЮТ ЧИСЛА С ПЛАВАЮЩЕЙ ТОЧКОЙ
float, double и тд.
Типы данных, которые мы используем работают не совсем так, как мы этого ожидаем.
Некоторые дроби невозможно представить в двоичном виде.
Как компьютер хранит такие числа в памяти, что привнес стандарт…
float, double и тд.
Типы данных, которые мы используем работают не совсем так, как мы этого ожидаем.
Некоторые дроби невозможно представить в двоичном виде.
Как компьютер хранит такие числа в памяти, что привнес стандарт…
🔥9👍5🥰2👏1
⚡️ Тесты в документации
Такой подход интересен тем, что позволяет другому программисту понять как работает функция в определённых ситуациях, а вам — протестировать её работу.
Реализуется подобная фича с помощью встроенного модуля doctest. Он ищет текста, которые выглядят как интерактивные сеансы Python (>>>, ... и подобные символы).
Вы можете запускать тесты так же, как в примере, а можно с помощью терминала:
#миниурок #doctest
Такой подход интересен тем, что позволяет другому программисту понять как работает функция в определённых ситуациях, а вам — протестировать её работу.
Реализуется подобная фича с помощью встроенного модуля doctest. Он ищет текста, которые выглядят как интерактивные сеансы Python (>>>, ... и подобные символы).
Вы можете запускать тесты так же, как в примере, а можно с помощью терминала:
python -m doctest -v example.py
.#миниурок #doctest
👍9
Фокус с type
Все мы знаем, что type позволяет определять тип данных (строка это или, может, список). Но у него есть другая функция — создание типа.
Таким образом мы можем во время выполнения создать новый класс и пользоваться им.
#теория
Все мы знаем, что type позволяет определять тип данных (строка это или, может, список). Но у него есть другая функция — создание типа.
Таким образом мы можем во время выполнения создать новый класс и пользоваться им.
#теория
👍53🥱1👾1
🔥 Про Pattern Matching
Эта фича появилась в Python 3.10 и позволяет превратить кучу if'ов в простой и читаемый код. Что-то на подобии switch/case, только лучше.
Перейти к просмотру | #видео
Эта фича появилась в Python 3.10 и позволяет превратить кучу if'ов в простой и читаемый код. Что-то на подобии switch/case, только лучше.
Перейти к просмотру | #видео
YouTube
Python 3.10 — Лучший новый инструмент Pattern Matching и его возможности
В релизе Python 3.10 мы получили довольно много различных дополнений, и одно из них это Pattern Matching, который создан, чтобы сделать ваш код намного чище и быстрее.
⭐ Курс ООП и Приват канал: https://www.zproger-school.com/?utm_source=yt&utm_medium=n…
⭐ Курс ООП и Приват канал: https://www.zproger-school.com/?utm_source=yt&utm_medium=n…
👍7🔥2👎1
isdecimal()
vs isdigit()
vs isnumeric()
Эти три метода str используются для определения, является ли строка числом, но у них есть небольшие отличия:
str.isdecimal()
— проверяет, является ли строка только набором цифр (1-9). В то время как:·
str.isdigit()
вернёт True, даже если в строке есть надстрочные и подстрочные цифры (² или u00B2). ·
str.isnumeric()
вернёт True, даже если это дробь (½ или u00BD).#объяснение
👍46
Правила документации
После идёт подробное объяснение. Кто он,
что он делает и какие параметры принимает.
Документировать можно в несколько абзацев.
Писать доки можно для всего: функции, класса, модуля.
Но если вы мне не доверяете, можете почитать PEP257,
там разработчики рассказывают, как объяснять код.
#теория
class Post:
"""
На первой строке краткое описание объекта. После идёт пустая строка (это обязательно).После идёт подробное объяснение. Кто он,
что он делает и какие параметры принимает.
Документировать можно в несколько абзацев.
Писать доки можно для всего: функции, класса, модуля.
Но если вы мне не доверяете, можете почитать PEP257,
там разработчики рассказывают, как объяснять код.
"""
#теория
👍13❤1
Замыкание
Особенность языка, которая позволяет вложенной функции получить доступ к внешним данным. Часто используется функциональном программировании.
Но с этой штукой надо быть осторожнее, она довольно прожорливая. Если в этой ситуации можно обойтись без замыкания, то лучше её не использовать.
#теория
Особенность языка, которая позволяет вложенной функции получить доступ к внешним данным. Часто используется функциональном программировании.
Но с этой штукой надо быть осторожнее, она довольно прожорливая. Если в этой ситуации можно обойтись без замыкания, то лучше её не использовать.
#теория
👍12
Немного фактов про Python
Во первых, это не змея. Название пошло в честь «Монти Пайтона» (Monty Python) — ведущего из любимого шоу разработчика «Летающий цирк Монти Пайтона».
Думаете, Python — молодой, современный язык? Но нет, он старше даже Java. Версия Python 1.0 вышла в январе 1994 года. То есть языку сейчас 28 лет.
#факты
Во первых, это не змея. Название пошло в честь «Монти Пайтона» (Monty Python) — ведущего из любимого шоу разработчика «Летающий цирк Монти Пайтона».
Думаете, Python — молодой, современный язык? Но нет, он старше даже Java. Версия Python 1.0 вышла в январе 1994 года. То есть языку сейчас 28 лет.
#факты
👍12👏1
Функция iter
В таком случае функция принимает
#теория
iter(object)
возвращает итератор объекта. Но это если в ней только один аргумент, а может быть и два...В таком случае функция принимает
iter(function, end)
и выполняет функцию, пока она не вернёт end.#теория
👍10❤1
🔥
Перейти к просмотру | #видео
@dataclass
Я уже рассказывал про этот декоратор. Он позволяет быстро создавать структуры данных, что серьёзно экономит время. В этом ролике автор лучше разбирает этот декоратор и рассказывает про небольшие фишки.Перейти к просмотру | #видео
Telegram
Разъяснивший Python
Класс с данными
У всех классов есть данные, но есть те, которые используются специально для хранения информации о пользователе, позиции и т.д. Создавать их проще всего с @dataclass из dataclasses.
Декоратор самостоятельно создаёт __init__, __eq__, __str__…
У всех классов есть данные, но есть те, которые используются специально для хранения информации о пользователе, позиции и т.д. Создавать их проще всего с @dataclass из dataclasses.
Декоратор самостоятельно создаёт __init__, __eq__, __str__…
Несколько фишек Python
1. Мы можем передать кортеж функции isinstance, тогда она будет проверять, относится ли x к одному из этих типов.
2. round может округлять в обратную сторону. То есть не только до дестых, но и до десяток.
3. В один except можно записывать несколько ошибок на обработку.
#теория
1. Мы можем передать кортеж функции isinstance, тогда она будет проверять, относится ли x к одному из этих типов.
2. round может округлять в обратную сторону. То есть не только до дестых, но и до десяток.
3. В один except можно записывать несколько ошибок на обработку.
#теория
👍25
🔥 Массивы
И нет, я не ошибся. В python действительно есть массивы и находятся они в модуле array. Они меньше занимают памяти, чем списки, но у них есть свои ограничения.
Про массивы, как ими пользоваться и их отличия от списков рассказывается в ролике.
Перейти к просмотру | #видео
И нет, я не ошибся. В python действительно есть массивы и находятся они в модуле array. Они меньше занимают памяти, чем списки, но у них есть свои ограничения.
Про массивы, как ими пользоваться и их отличия от списков рассказывается в ролике.
Перейти к просмотру | #видео
YouTube
PYTHON массивы на ПРОСТЫХ примерах. Отличия от СПИСКОВ и принцип работы
Array массивы в Python с нуля в одном видео
⭐ Курс ООП и Приват канал: https://zproger-school.com/
⭐ Телеграм канал: https://t.me/+s9ScbtfzA3djNGI5
В данном видео мы рассмотрим Array массивы, принцип их работы и основные отличия от списков. Часто многие…
⭐ Курс ООП и Приват канал: https://zproger-school.com/
⭐ Телеграм канал: https://t.me/+s9ScbtfzA3djNGI5
В данном видео мы рассмотрим Array массивы, принцип их работы и основные отличия от списков. Часто многие…
❤3👍3
0x6e 0x75 0x6d 0x65 0x72 0x61 0x6c 0x20 0x73 0x79 0x73 0x74 0x65 0x6d
В Python мы можем использовать другие системы счисления, просто добавив приставку.
0x для шестнадцатеричной, 0o для восьмеричной и 0b для двоичной системы счисления.
#объяснение
В Python мы можем использовать другие системы счисления, просто добавив приставку.
0x для шестнадцатеричной, 0o для восьмеричной и 0b для двоичной системы счисления.
#объяснение
👍30🔥5❤3
Перейдём к основам-основам
В Python есть два типа типов: изменяемые (list, set, dict) и неизменяемые (bool, int, float, complex, tuple, str, frozenset).
Зачем такие сложности? Неизменяемые типы сохраняют данные, не позволяя другим объектам на них повлиять.
#теория
В Python есть два типа типов: изменяемые (list, set, dict) и неизменяемые (bool, int, float, complex, tuple, str, frozenset).
Зачем такие сложности? Неизменяемые типы сохраняют данные, не позволяя другим объектам на них повлиять.
#теория
👍30👎2