Python Learning
33.5K subscribers
1.95K photos
8 videos
7 files
953 links
№ 4974297878

Обучающий канал по Python

Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Python_per_month
Download Telegram
Декораторы для проверки сигнатуры метода

Декораторы для проверки сигнатуры метода (method signature checking decorators) могут быть полезными для улучшения контроля над аргументами и возвращаемыми значениями методов. Они позволяют вам проверить, что метод вызывается с правильными типами аргументов и возвращает ожидаемые значения. Для создания таких декораторов можно использовать библиотеку functools и inspect.

#для_продвинутых
👍112
pydoc

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

#для_начинающих
🎉14👍8
Цепи Маркова

Цепи Маркова (Markov Chains) представляют собой математическую модель, которая описывает последовательность состояний, в которых система может находиться, и вероятности переходов между этими состояниями. В Python вы можете реализовать Цепи Маркова с помощью списка списков или матрицы переходных вероятностей.

На картинке пример простой Цепи Маркова, описывающей погоду (солнечно, облачно, дождливо) с вероятностями переходов между этими состояниями

#для_продвинутых
👍181🎉1
PYTHONSTARTUP

PYTHONSTARTUP — это переменная окружения, которая позволяет указать путь к файлу, который будет автоматически выполнен при запуске интерпретатора. Этот файл может содержать любой дополнительный код, который вы хотите выполнить каждый раз, когда запускается интерпретатор.

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

#для_начинающих
👍102
reduce()

Функция reduce() в Python реализует операцию свёртки (или аккумуляции) для элементов итерируемой последовательности, используя заданную функцию. Она поочередно применяет функцию к парам элементов итерируемой последовательности и аккумулирует результаты.

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

#для_начинающих
👍18🎉1
Декоратор timeit

Декоратор timeit используется для измерения времени выполнения функции или участка кода. Этот декоратор позволяет вам оценить, сколько времени занимает выполнение определенной операции.

Вы можете использовать этот декоратор, чтобы измерить время выполнения любой функции. Просто поместите @timeit перед определением функции, которую вы хотите измерить, и при каждом вызове этой функции будет выводиться время выполнения.

#для_начинающих
👍171
Docstring

Docstring (дословно «строка документации») — это строка, которая используется для документирования модулей, функций, классов и методов в вашем коде. Она представляет собой строковый литерал, который следует сразу после определения элемента кода и предназначен для объяснения, как работает этот элемент, какие аргументы он принимает, какие значения возвращает и другие важные детали.

Обычно docstring располагается в самом верхнем уровне определения элемента кода и заключается в тройные кавычки (одинарные или двойные).

#для_продвинутых
👍142
Что такое файлы .pth

Файлы с расширением .pth — это файлы, которые могут быть использованы для добавления директорий в путь поиска модулей Python. Директивы .pth выполняются при запуске интерпретатора Python и добавляют определенные каталоги в переменную sys.path.

Это удобно, когда нужно импортировать модули из нестандартных директорий без необходимости переноса файлов в директории по умолчанию.

#для_начинающих
👍122🎉1
Что такое wheels и eggs?

В Python wheels и eggs — это форматы пакетов для установки и дистрибуции пакетов с помощью утилиты управления пакетами pip.

Egg был первоначально разработан как формат дистрибуции пакетов для Python, но был заменен wheels. В отличие от wheels, eggs могут содержать .pyc файлы, что может привести к проблемам при установке на другой платформе или версии Python.

Wheels — это новый формат дистрибуции пакетов, который был введен в Python 2.7. Он поддерживается большинством пакетов на PyPI и имеет множество преимуществ.

#для_продвинутых
🎉9👍6
Хвостовая рекурсия

Хвостовая рекурсия — это вид рекурсии, при котором рекурсивный вызов функции происходит в конце функции и результат этого вызова сразу возвращается, без выполнения каких-либо дополнительных операций. Хвостовая рекурсия может быть оптимизирована интерпретатором Python, чтобы избежать переполнения стека и улучшить производительность.

Для создания хвостовой рекурсии в Python, вы можете использовать декоратор @functools.lru_cache в сочетании с аргументами, которые передаются функции.

#для_продвинутых
👍181🎉1
Что такое модуль __init__.py?

Модуль __init__.py является частью организации пакетов (packages) в Python. Этот файл используется для определения директории как пакета и может содержать код и переменные, которые будут доступны при импорте пакета. Важно отметить, что __init__.py не является обязательным для всех директорий, но он необходим, чтобы Python интерпретировал директорию как пакет.

#для_начинающих
👍95
__next__

__next__ — это метод, который используется в Python для реализации протокола итератора в пользовательских классах. Протокол итератора позволяет объекту перебирать элементы один за другим. Этот метод должен быть определен в классе, чтобы он мог быть итерируемым с помощью цикла for.

#для_начинающих
👍141
Зачем нужен pdb

pdb — это интерактивный отладчик для Python, с помощью которого можно перемещаться по коду во время запуска вашей программы, смотреть и изменять значения переменных, построчно навигироваться по коду (в том числе углубляться во вложенности кода), назначать брейкпоинты и все прочие операции присущие отладчику.

Модуль pdb предоставляет интерфейс командной строки, который можно использовать для взаимодействия с кодом Python во время его выполнения. Вы можете войти в режим pdb в своей программе Python, вставив следующую строку кода там, где вы хотите остановить отладчик: импортировать PDB.

#для_продвинутых
👍122🔥1
Как сделать копию и глубокую копию объекта?

Метод copy() создает поверхностную копию объекта, то есть создает новый объект, который содержит ссылки на те же объекты, что и исходный объект. Если вы измените какой-либо из этих объектов, изменения отразятся и на копии, и на исходном объекте.

Метод deepcopy() создает глубокую копию объекта, то есть создает новый объект, который содержит копии всех объектов, на которые ссылаются элементы исходного объекта. Если вы измените какой-либо из этих объектов, изменения не отразятся на копии или на исходном объекте.

#для_начинающих
👍15🎉4
Глобальные переменные

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

#для_начинающих
👍8🆒2🎉1
Чем отличаются iter и next?

iter и next являются методами специальных методов в Python, которые обеспечивают поддержку итерации для объектов.

Метод iter возвращает объект, который может быть использован для итерации по элементам контейнера. Объект, возвращаемый iter, должен содержать метод next.

Метод next должен вернуть следующий элемент в итерации или вызвать исключение StopIteration, если элементов больше нет.

Таким образом, метод iter используется для создания итератора, а метод next используется для перехода к следующему элементу в итерации.

#для_начинающих
👍154
Асинхронный код

Асинхронный код — это подход к написанию кода, который позволяет выполнять несколько задач одновременно в рамках одного процесса. Это достигается за счет использования асинхронных функций и корутин. В отличие от синхронного кода, который выполняет каждую задачу последовательно, асинхронный код может запустить несколько задач «параллельно» и организовать их выполнение с помощью итераций и вызовов коллбеков.

#для_продвинутых
👍16🎉3🗿31👨‍💻1
Почему пустой список нельзя использовать как аргумент по умолчанию?

Значения по умолчанию для аргументов функции вычисляются только один раз, когда функция определяется, а не каждый раз, когда она вызывается. Таким образом, если вы попытаетесь использовать изменяемый тип данных (например, список) как аргумент по умолчанию для функции, то каждый вызов функции, который изменяет это значение, также изменит значение по умолчанию для всех последующих вызовов функции. Это может привести к неожиданным поведениям.

Пустой список — это изменяемый тип данных в Python, поэтому его использование в качестве аргумента по умолчанию не рекомендуется. Вместо этого лучше использовать None в качестве значения по умолчанию и создавать новый пустой список внутри функции, если требуется список.

#для_начинающих
👍17
Слайс

Слайс (или срез, англ. slice) — это способ выбрать часть последовательности (например, строки, списка, кортежа) путем указания начального и конечного индексов, а также шага. Слайсы используются для извлечения подстрок, подсписков или подкортежей из исходной последовательности.

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

#для_начинающих
👍93
Что такое синхронный код?

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

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

#для_начинающих
👍15🎉2