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
Паттерн проектирования «Фасад»

Паттерн проектирования «Фасад» (Facade) используется для предоставления унифицированного интерфейса к группе интерфейсов подсистемы. Он позволяет скрыть сложность и детали взаимодействия между различными компонентами системы, предоставляя клиенту более простой и удобный способ взаимодействия.

#для_продвинутых
👍204
dict comprehension

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

#для_начинающих
👍15
Цикломатическая сложность

Цикломатическая сложность (Cyclomatic Complexity) — это метрика, используемая для оценки сложности кода на основе количества путей выполнения в программе. Эта метрика была предложена Томасом МакКейбом в 1976 году и обычно используется для определения того, насколько сложно будет тестирование и сопровождение данного кода.

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

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

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

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

В этом примере мы устанавливаем стиль 'science' из библиотеки scienceplots. Затем мы создаем данные для графика и строим график. В конце мы отображаем график с помощью plt.show().
👍9🔥1🗿1
Контекстные менеджеры

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

Для создания своего собственного контекстного менеджера вам потребуется определить методы __enter__() и __exit__() в вашем классе. Метод __enter__() выполняется при входе в контекст, а метод __exit__() выполняется при выходе из контекста.

#для_начинающих
👍13
__slots__

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

Обычно, когда вы создаете экземпляр класса, Python создает словарь для хранения всех атрибутов этого экземпляра. Это занимает дополнительную память и может вызвать небольшое замедление при доступе к атрибутам. А использование slots позволяет определить, какие атрибуты можно создавать для экземпляров класса, и Python будет использовать более компактное представление данных, что уменьшит расход памяти.

#для_продвинутых
👍152
Что такое args?

args — это сокращение от «arguments» (аргументы). Этот термин обычно используется в контексте определения функций с переменным числом аргументов.

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

#для_начинающих
👍181
Аннотации типов

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

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

#для_начинающих
👍121🎉1
Сортировка пузырьком

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

В данном коде функция bubble_sort принимает список arr, который нужно отсортировать. Основной цикл проходит по всем элементам списка, а вложенный цикл сравнивает соседние элементы и меняет их местами, если это необходимо. После завершения алгоритма, список будет отсортирован.

#для_продвинутых
👍22🗿9🎉1
Cтатический метод

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

Чтобы определить статический метод в классе, используется декоратор @staticmethod.

#для_начинающих
👍121🎉1
«Циклический сбор мусора»

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

Вы можете влиять на этот процесс с помощью модуля gc (garbage collector).

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

#для_продвинутых
👍17🎉4
unit-тесты

Unit-тесты (или unittests) — это метод тестирования ПО, который позволяет проверить, работает ли отдельная единица кода (обычно функция или метод) так, как ожидается. Библиотека unittest входит в стандартную библиотеку Python и предоставляет набор инструментов для написания и выполнения тестовых сценариев.

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

#для_начинающих
🎉9👍41🔥1
Паттерн проектирования «Стратегия»

«Стратегия» (Strategy) является одним из шаблонов поведения, определенных в книге «Банды четырёх» (Gang of Four, GoF). Этот паттерн относится к категории поведенческих паттернов и решает задачу определения семейства алгоритмов, инкапсуляции каждого из них и обеспечения их взаимозаменяемости. Это позволяет клиентскому коду выбирать нужный алгоритм независимо от его использования.

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

#для_продвинутых
👍13🎉2
👍7
Что выведет этот код?
Anonymous Quiz
24%
0
39%
1
28%
Ошибку
9%
Узнать ответ
👍14🤔41
memory_profiler

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

Для использования memory_profiler вы должны установить его сначала. Это можно сделать с помощью инструмента установки пакетов Python, такого как pip.

#для_начинающих
👍10🎉1
Acceptance Testing

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

Основной целью Acceptance Testing является убедиться, что ПО работает в соответствии с функциональными и нефункциональными требованиями, установленными для проекта.

#для_начинающих
👍7🎉1
Компрехеншен

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

В Python существует несколько видов компрехеншенов: списковые компрехеншены (List comprehensions), множественные компрехеншены (Set comprehensions) и словарные компрехеншены (Dictionary comprehensions).

#для_начинающих
👍18🎉2
Расстояние Левенштейна

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

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

#для_продвинутых
👍14🥰21🆒1
Изменяем цвет текста в терминале

Colorama — это библиотека для языка программирования Python, которая позволяет использовать ANSI-последовательности для вывода цветного текста в терминале на разных платформах.

Кроме того, можно использовать константы из модуля Style для установки стиля текста (например, жирный или подчеркнутый) и константы из модуля Back для установки цвета фона.

Например, чтобы вывести зеленый текст с помощью Colorama, можно использовать код, приведенный выше.
В этом примере init используется для инициализации библиотеки и обеспечения работы ANSI-последовательностей на Windows, а константа Fore для установки цвета текста.
👍10🎉2