ar
Feedback

لا تقع ضحية للمخادعين! تيليمتريو يكتشف ويُميّز هذه القنوات 👉 إذا كنت تريد رؤية العلامة، اشترك

Разъяснивший Python

Разъяснивший Python

الذهاب إلى القناة على Telegram

Твой проводник в омут Python'а Ссылка: @Portal_v_IT Сотрудничество: @oleginc

إظهار المزيد
6 893
المشتركون
+224 ساعات
-97 أيام
-6430 أيام
أرشيف المشاركات
Цепочка операторов Синтаксический сахар для упрощения проверок. Работает со всеми операторами сравнения (<, ==, >, ...)
Цепочка операторов Синтаксический сахар для упрощения проверок. Работает со всеми операторами сравнения (<, ==, >, ...), is и in. Цепь может состоять из любого количества операторов. Хочу заметить, что цепь не создаёт никаких связей, так что вы вполне можете написать так: x < y > z. Если увидите это на проде, пишите git blame и ищите, кому бить морду. #теория

Как определить истинный этот объект или нет? Многие знают, что в Python всё можно перевести в bool. Пустые последовательности
Как определить истинный этот объект или нет? Многие знают, что в Python всё можно перевести в bool. Пустые последовательности и коллекции ('', [], (), {}, range(0)), None и 0 возвращают False. Остальное — True. Но как это просчитывается? Вызывается __bool__() метод, который возвращает True/False. Если его нет, используется __len__(). Если метод вернёт 0, то результат будет False. Если ни одна из функций не определена, то объекты считаются True. #объяснение

⚡️ Оператор моржа Его добавили в Python 3.8. Он решает две задачи: присвоение значение переменной и возврат этого значения. Д
⚡️ Оператор моржа Его добавили в Python 3.8. Он решает две задачи: присвоение значение переменной и возврат этого значения. Другими словами, он позволяет нам присваивать значение переменной и возвращать его в одном и том же выражении. Таким образом код становится короче и более читаемым, а повторное использование переменной в разы проще. Записывается так: var_name := expression, где := — оператор. Подробнее можно почитать в PEP 572. P.S. А назвали его моржом, потому что := действительно похоже на глаза и бивни моржа, лежащего на боку. #теория

for...else Если вы думали, что else есть только у if, то вынужден вас огорчить. Оно встречается и у try, и у for. Блок else в
for...else Если вы думали, что else есть только у if, то вынужден вас огорчить. Оно встречается и у try, и у for. Блок else выполняется если цикл завершился нормально, то есть не был остановлен с помощью оператора break. Хочу заметить, что continue никак не влияют на блок else, только оператор break имеет значение. К слову, на эту тему у нас был тест. Документация #теория

Строки на несколько строк Бывают ситуации, когда строку лучше разделить, чтобы она легче читалась, но при этом сохранить её с
Строки на несколько строк Бывают ситуации, когда строку лучше разделить, чтобы она легче читалась, но при этом сохранить её содержимое в полном порядке. В таком случае у нас есть три варианта: · Использовать косую черту (/). Тогда мы переносим выражение на новую строку и ни о чем не заботимся. · Использовать скобки. Смотрите лучше пример. Никаких + использовать не надо, строки сами объединяться. · Использовать тройные кавычки. Внутри тройных кавычек все останется именно таким, как оно есть. #теория

Кстати, про functools Это модуль с полезными функциями... для работы с функциями. Например: @cache — простой легкий неогранич
Кстати, про functools Это модуль с полезными функциями... для работы с функциями. Например: @cache — простой легкий неограниченный кеш функций. Если функция долго вычисляется, то вы можете сохранить сохранить результат в памяти, чтобы потом его не считать, а брать оттуда. partial(func, *args, **keywords) — возвращает вызываемый объект, который вызывает полученную функция с переданными при создании аргументами и во время вызова. Но и это ещё не всё, в модуле много фишек, которые можно узнать из документации. #теория

Так что же такое NaN Not a number (не число) — состояние числа с плавающей запятой, при котором машине не удалось посчитать к
Так что же такое NaN Not a number (не число) — состояние числа с плавающей запятой, при котором машине не удалось посчитать какое-то выражение. Компьютер не в силах поделить 0 на 0 или узнать asin(2), поэтому возвращает NaN. Его особенностью среди других чисел является то, что оно не равно самому себе. #объяснение

⚡️ Принцип KISS «Keep it simple, stupid» означает, что программисту нужно максимально упрощать код, делать его более понятным
⚡️ Принцип KISS «Keep it simple, stupid» означает, что программисту нужно максимально упрощать код, делать его более понятным. Таким образом в разы легче добавить новые фичи в проект, а вы сможете со спокойной душой уйти в отпуск. Как это — проще? Вам не стоит реализовывать функционал, которые, более вероятно, не будут использовать. Также надо уметь остановиться, добавляя новые уровни абстракции или создавая интерфейсы. #миниурок #kiss

all и any all(iterable) — возвращает True, если все элементы в iterable являются True. Документация any(iterable) — возвращае
all и any all(iterable) — возвращает True, если все элементы в iterable являются True. Документация any(iterable) — возвращает True, если хотя бы один элемент в iterable является True. Документация #объяснение

Декораторы Это функции, которые меняют поведение других функций, не меняя код внутри них. Сами по себе декораторы составляют
Декораторы Это функции, которые меняют поведение других функций, не меняя код внутри них. Сами по себе декораторы составляют вызываемый объект (функция, класс с __call__), который возвращает другой вызываемый объект. @wraps используется для изменения некоторых значения (__name__, __doc__) на значения функции, с которой мы работаем, а не декоратора. #теория

try/except Эта конструкция используется для «ловли» ошибок и их обработки. Например, если пользователь неправильно ввёл число
try/except Эта конструкция используется для «ловли» ошибок и их обработки. Например, если пользователь неправильно ввёл число, попросить его сделать это заново. try — здесь хранится код, который может выдать ошибку. except Exception — если появилась ошибка, будет выполняться код из этого блока. else — ошибок не было? Отлично, значит после try выполняем этот блок. finally — выполняется всегда. Выдало ошибку, не выдало ошибку, функция использовала return — не имеет значение. #объяснение

args и kwargs Бывает ситуации, когда мы не знаем, сколько пользователей передаст параметров функции. В таком случае использую
args и kwargs Бывает ситуации, когда мы не знаем, сколько пользователей передаст параметров функции. В таком случае используют *args и **kwargs. *args — кортеж со всем позиционными аргументами. Позиционные это те, что передаются по позиции (спасибо, капитан очевидность). **kwargs — словарь с ключевыми аргументами. Ключевые, как вы поняли, передаются по ключу, то есть key=value. Эти имена не имеют никакого значения, самое главное — символы звёздочки в начале. #объяснение

⚡️ Фабричный метод Фабричный метод используется как средство предоставления фабричных интерфейсов для создания объектов. Они
⚡️ Фабричный метод Фабричный метод используется как средство предоставления фабричных интерфейсов для создания объектов. Они позволяют ослабить связи в коде и упростить его: чаще всего он используется, если вам нужно создать объект по какому-то условию. Таким образом, мы перемещаем большое количество if/elif/else-кода в отдельный метод. #паттерны

Что такое __name__ ? Каждый раз, когда мы импортируем код, он весь выполняется точно так же, словно мы его просто запустили.
Что такое __name__ ? Каждый раз, когда мы импортируем код, он весь выполняется точно так же, словно мы его просто запустили. Чтобы избежать странного поведения, как на картинке, стоит использовать __name__. Переменная получает значение '__main__', если программу запустили напрямую (python file.py). Если же файл импортировали как модуль, он получает своё название. #теория

Про упаковку и распаковку Распаковку задаёт переменным значения итерируемого объекта (список, кортеж, строка, генератор). Упа
Про упаковку и распаковку Распаковку задаёт переменным значения итерируемого объекта (список, кортеж, строка, генератор). Упаковка позволяет собрать несколько значений в один список и после работать с ними. Эти фишки делают код более красивым и элегантным, но стоит знать меру. #объяснение

Нижние подчёркивание между цифрами Они никак не влияют на приложение и используются для того, чтобы числа было удобнее считыв
Нижние подчёркивание между цифрами Они никак не влияют на приложение и используются для того, чтобы числа было удобнее считывать при больших значениях. Таким образом можно разделять десятки, сотни, тысячи и так далее. #объяснение

Сравнение последовательностей При использовании оператор больше (&gt;) или меньше (&lt;) с строками, котрежами, списками, они
Сравнение последовательностей При использовании оператор больше (>) или меньше (<) с строками, котрежами, списками, они сравниваются последовательно, то есть элемент с элементом. Есть только небольшой нюанс при проверке строк. Они сравниваются по их позиции в таблице Unicode, которую можно получить с помощью ord(char). #объяснение

Возможности срезов С помощью срезов мы можем менять элементы списка. Называют это так: «Изменение путем присваивания». Таким
Возможности срезов С помощью срезов мы можем менять элементы списка. Называют это так: «Изменение путем присваивания». Таким образом мы заменяем элементы внутри этого среза другими из итератора (list, tuple, range). С их помощью мы также можем добавлять/удалять элементы, опустошать список и многое другое. Стоит отметить, что в разреженных срезах ([::2]) такое не работает, если длина итератора не равна длине результата среза. #объяснение

Оператор моржа Это фишка Python c версии 3.9. Она позволяет задавать значение переменной и одновременно его возвращать для по
Оператор моржа Это фишка Python c версии 3.9. Она позволяет задавать значение переменной и одновременно его возвращать для последующей обработки. Его довольно удобно использовать в генераторных выражениях, ведь это делает код не только чище, но и быстрее. #объяснение

Статические переменные Это переменная, которая создаётся вместе с типом и существует до закрытия приложения. Все переменные,
Статические переменные Это переменная, которая создаётся вместе с типом и существует до закрытия приложения. Все переменные, что находится внутри класса, но не попадают в ни один метод являются статическими. #объяснение