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

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

Open in Telegram

Твой проводник в омут Python'а Ссылка: @Portal_v_IT Сотрудничество: @oleginc, @tatiana_inc Канал на бирже: https://telega.in/c/python_pssss

Show more
7 156
Subscribers
-224 hours
-187 days
-6030 days
Posts Archive
Так что же такое 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). Если же файл импортировали как модуль, он получает своё название. #теория

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

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

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

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

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

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

__getattribute__ и __getattr__ Это особые методы, которые вызываются при попытке получить какой-либо атрибут класса. Например
__getattribute__ и __getattr__ Это особые методы, которые вызываются при попытке получить какой-либо атрибут класса. Например, foo.var вызовет __getattribute__, а после, возможно __getattr__. Отличие между методами только в том, что __getattribute__ используется всегда, а __getattr__ только если атрибут не найден. #объяснение

Про copy В python есть модуль, который называется copy. У него только две функции: copy() и deepcopy(). copy(x) — поверхностн
Про copy В python есть модуль, который называется copy. У него только две функции: copy() и deepcopy(). copy(x) — поверхностно копирует объект и вставляет в него ссылки на объекты, обнаруженные в оригинале. deepcopy(x) — Создаёт новый объект и рекурсивно вставляет в него копии объектов, которые нашёл в оригинале. #объяснение

Что такое @wraps? Это декоратор из модуля functools, который используется для создания декораторов. Он обновляет значения __m
Что такое @wraps? Это декоратор из модуля functools, который используется для создания декораторов. Он обновляет значения __module__, __name__, __doc__ на значение реальной функции, а не декоратора, а также добавляет __wrapped__ для получения доступа к декорируемой функции. Подробнее можно почитать в документации. #объяснение

Про переменные и их названия В python можно встретить переменные по типу name, _name, __name. Но что значат эти подчёркивания
Про переменные и их названия В python можно встретить переменные по типу name, _name, __name. Но что значат эти подчёркивания перед названием? _name — индикатор того, что это внутренняя переменная и работать с ней напрямую не стоит. Также при from M import * не импортирует объекты, что начинаются на _. __name — заменяет имя на _classname__name, где classname — это имя текущего класса с удаленными начальными символами подчеркивания. Используется для определения частных переменных, которыми никто не должен пользоваться. #объяснение

Булевые операции x or y — если x правда (True), возвращает x, иначе y. x and y — если x правда (True), возвращает y, иначе x.
Булевые операции x or y — если x правда (True), возвращает x, иначе y. x and y — если x правда (True), возвращает y, иначе x. #объяснение

Разница между is и == Каждый объект хранится в памяти и имеет свой номер, по которому можно его найти. Этот номер можно получ
Разница между is и == Каждый объект хранится в памяти и имеет свой номер, по которому можно его найти. Этот номер можно получить с помощью функции id(). is занимается сравниванием этих самых адресов. В то время как == вызывает функцию __eq__ и предназначения для сравнения значений класса. Представьте куб, а потом ещё один такой же. Они одинаковые, но это два абсолютно разных объекта. Также и в программировании. #объяснение