python_per_month | Unsorted

Telegram-канал python_per_month - Python Learning

28154

Обучающий канал по Python Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy По всем вопросам @valentin_mascarov Реклама на бирже - https://telega.in/c/Python_per_month

Subscribe to a channel

Python Learning

👉 Подключайтесь 24 августа в 20:00 в OTUS к открытому уроку «Работа с пакетами в Python с помощью pip и poetry».

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

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

👉 Для участия и получения записи зарегистрируйтесь https://otus.pw/HI5X/

📌 Вебинар приурочен к старту онлайн-курса «Python Developer» для начинающих Python-разработчиков.
Нативная интеграция. Информация о продукте www.otus.ru

Читать полностью…

Python Learning

«Циклический сбор мусора»

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

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

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

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

Читать полностью…

Python Learning

Сортировка пузырьком

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

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

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

Читать полностью…

Python Learning

Что такое args?

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

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

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

Читать полностью…

Python Learning

Контекстные менеджеры

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

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

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

Читать полностью…

Python Learning

SciencePlots

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

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

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

Читать полностью…

Python Learning

dict comprehension

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

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

Читать полностью…

Python Learning

__init__

__init__ является методом, который используется для инициализации объектов при создании экземпляров классов. Этот метод называется «конструктором» класса и выполняется автоматически при создании нового объекта данного класса.

Когда вы создаете новый объект путем вызова конструктора класса, передавая ему аргументы, эти аргументы могут быть использованы для установки начальных значений атрибутов объекта. Внутри метода __init__ вы можете определить, какие атрибуты должны быть созданы для объекта и как им присвоены начальные значения.

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

Читать полностью…

Python Learning

Фабричный метод

Фабричный метод (Factory Method) — это паттерн проектирования, который позволяет создавать объекты определенного типа через интерфейс или базовый класс, но делегирует фактическое создание конкретных объектов подклассам. Это способ позволяет легко добавлять новые типы объектов без изменения существующего кода.

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

Читать полностью…

Python Learning

📱 Apple теперь в Telegram!

Подписывайтесь: @Apple

Читать полностью…

Python Learning

Метакласс

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

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

Читать полностью…

Python Learning

exceptions

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

В данном примере кода, операция x = 10 / 0 вызовет исключение ZeroDivisionError, так как нельзя делить на ноль. Однако благодаря конструкции try и except, программа не завершится с ошибкой. Вместо этого будет выведено сообщение «Произошла ошибка деления на ноль!».

Читать полностью…

Python Learning

Бинарный поиск

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

В этом примере функция binary_search принимает отсортированный массив arr и искомый элемент target. Она ищет элемент в массиве и возвращает его индекс, если он найден, и -1, если элемент отсутствует. Каждая итерация сужает диапазон поиска путем сравнения среднего элемента с искомым элементом и сдвига границ поиска в соответствии с результатом сравнения.

Читать полностью…

Python Learning

Нашли лучшие курсы по Python-разработке!

Tutortop
— образовательный маркетплейс №1, где представлено более 5000 курсов от более чем 300 школ. Вы можете сравнить курсы по рейтингу, цене и отзывам, а еще купить дешевле, чем напрямую 🔥

Собрали для вас подборку лучших курсов для разработчиков по мнению пользователей tutortop:

Профессия «Разработчик на Python с гарантией трудоустройства» от Skypro. Рейтинг 4.9 из 5. Скидка 15% по промокоду TUTORTOP до 13.08

Курс «Python-разработчик с гарантией трудоустройства» от Eduson. Рейтинг 4.8 из 5. Скидка 5% по промокоду TUTORTOP до 13.08

Курс «Разработчик Python» от Академии АйТи. Рейтинг 4.7 из 5.

Все эти курсы и десятки других можно найти и сравнить на tutortop⚡️

Читать полностью…

Python Learning

Чтобы стать востребованным программистом не обязательно покупать дорогущие курсы от известных школ.

Можно просто подписаться на канал «Бесплатные курсы IT» и следить за их анонсами.

Здесь каждый день публикуют образовательные программы по популярным направлениям в IT. Например:

📍UX/UI дизайнер
📍Тестировщик с нуля
📍Английский для IT специалистов

Еще больше интересного: @learnsu

Читать полностью…

Python Learning

unit-тесты

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

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

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

Читать полностью…

Python Learning

Cтатический метод

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

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

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

Читать полностью…

Python Learning

Аннотации типов

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

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

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

Читать полностью…

Python Learning

__slots__

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

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

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

Читать полностью…

Python Learning

Codeby Academy открывает осенний набор на один из своих лучших курсов - «Python для Пентестера»

Старт: 4 сентября
Длительность: 3 месяца

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

🐍После 3-месячного онлайн-курса «Python для пентестера» вы сможете:

➡️Эффективно использовать базы данных и сеть Интернет;
➡️Получать данные от сайтов в автоматическом режиме;
➡️Писать прикладные программы на Python.

🏆 Выдаём сертификат при успешной сдаче экзамена

А по промокоду OFFZONE2023 вы получите дополнительную скидку 10%

📌 Узнать подробнее о курсе

Читать полностью…

Python Learning

Цикломатическая сложность

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

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

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

Читать полностью…

Python Learning

Паттерн проектирования «Фасад»

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

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

Читать полностью…

Python Learning

Что такое _slots_?

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

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

Читать полностью…

Python Learning

Дескрипторы

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

Для создания дескриптора нужно определить класс, который реализует хотя бы один из трех вышеуказанных методов. Затем экземпляры этого класса могут быть присвоены атрибутам других классов.

Читать полностью…

Python Learning

Как работает thread locals?

Thread-local storage обеспечивает механизм для сохранения данных, которые будут доступны только в рамках определенного потока выполнения. Это полезно, когда вы хотите иметь раздельные данные для каждого потока, но не хотите делить их между разными потоками.

Вы можете использовать класс threading.local(), чтобы создать объект, который будет представлять thread-local storage. В этом объекте вы можете хранить любые данные, и они будут видимы только для текущего потока. Каждый поток будет иметь свою собственную копию объекта threading.local().

Читать полностью…

Python Learning

introspection

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

Например, в Python вы можете использовать функции и атрибуты, такие как dir(), type(), getattr(), hasattr(), locals(), globals() и другие, чтобы получить информацию о переменных, объектах и их атрибутах. Это может быть полезно при отладке, создании обобщенных функций или динамической загрузке модулей.

Читать полностью…

Python Learning

❗️Как развиваться Python-разработчику?

Наращивать объем знаний и навыков. За этим приходите на вебинар, приуроченный к старту онлайн-курса «Python Developer. Professional» в OTUS.

✅ 15 августа — «Code review»
Обсудим основы разработки API с помощью фреймворка FastAPI, рассмотрим пример небольшого приложения и осветим особенности развертывания эксплуатации.

🧑‍💻 Спикером выступит Станислав Ступников, руководитель разработки в VK. Эксперт с 10+ лет опыта промышленной разработки.

💪 Погрузим вас в современную «промышленную» разработку на Python. Главный фокус курса на основных Software Engineering компетенциях Python-разработчика и формировании прагматичного подхода к решению задач.

👉 ПРОЙТИ ТЕСТ для регистрации на открытый урок
https://otus.pw/LZMQ/

Нативная интеграция. Информация о продукте www.otus.ru

Читать полностью…

Python Learning

Задача

У вас есть девять цифр: 1, 2, …, 9. Именно в таком порядке. Вы можете вставлять между ними знаки «+», «-» или ничего. У вас будут получаться выражения вида 123+45-6+7+89. Найдите все из них, которые равны 100.

Мне кажется, в таком виде его проще всего и писать и читать и тестировать. Тут у меня три функции: all_combinations — итератор, который выдает все числа для операций (в терминах задачи: вставляет пустые места); all_signs — выдаёт все возможные сочетания знаков + и - заданной длинны (для единообразия, это тоже итератор с рекурсией); perform_operations — выполняет операции.

Тут, конечно, просится решение, избавленное от if-ов и кодирования операций с помощью символов. Но это решение будет более громоздким, о нём можно рассказать, но и писать, и читать его дольше.

Читать полностью…

Python Learning

PyTorch

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

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

При этом мы используем функцию потерь CrossEntropyLoss, которая подходит для задач классификации, и оптимизатор SGD.

Читать полностью…

Python Learning

Введение в машинное обучение с помощью scikit-learn (перевод документации)

Смотреть статью

Читать полностью…
Subscribe to a channel