Pythoner
Open in Telegram
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику. Сотрудничество - @flattys Цены - @serpent_media Канал на бирже: https://telega.in/c/pythonercode
Show more6 610
Subscribers
-224 hours
-147 days
-4130 days
Posts Archive
6 609
✏Переименование файлов в Python
rename() — это функция из модуля os, которая позволяет переименовывать файлы и директории.
Используется для переименования файлов и директорий на файловой системе. Принимает два аргумента - старое имя и новое имя и атомарно переименовывает файл за одну операцию.
Также позволяет перемещать файлы между разными директориями.
6 609
🖥Тернарный оператор
Тернарный оператор — это оператор, позволяющий записать условную конструкцию if-else в одну строку.
Тернарный оператор часто используется для условного присваивания значений переменной, выбора между двумя вариантами в одну строку.
Он позволяет сократить и упростить запись условных выражений. Однако не рекомендуется использовать вложенные конструкции, т. к. это ухудшает читаемость.
В данном примере тернарный оператор используется:
— Для вывода одной из двух фраз в зависимости от условия
a > b.
— Для присваивания переменной result одного из двух значений в зависимости от четности a.6 609
🖥Оператор pass
Оператор
pass — это особая конструкция, которая не делает ничего.
Она может применяться в следующих ситуациях:
— Заглушка для незавершенных блоков кода. Если написано только определение функции или класса, но нет тела - можно вставить pass, чтобы код был допустимым синтаксически.
— Пустые блоки в циклах. Вместо тела цикла можно написать pass, если на данном этапе нет необходимости выполнять какие-либо действия.
— Пропускать блоки кода в условных конструкциях. Если в ветви if-else ничего делать не нужно, можно использовать pass.
— Создание абстрактных базовых классов и заготовок методов, которые будут переопределены позже в подклассах.
— Обозначение функций или классов, которые планируется реализовать в будущем.
Как видно из примера, все числа от 0 до 9 выводятся кроме 5.6 609
Точка входа в программу
Конструкция if __name__ == '__main__' используется для того, чтобы определить, запущен ли файл модуля напрямую или импортирован из другого модуля.
Эта конструкция позволяет запустить какой-то код только при прямом вызове модуля, так как name будет равно 'main' только если модуль запущен напрямую.
Это позволяет запускать программу полностью только когда она основная, а не импортируется в качестве модуля.
6 609
raise
Конструкция
raise используется для генерации исключений.
Когда в коде происходит что-то непредвиденное или некорректное — можно сгенерировать исключение командой raise.
Например:
raise ValueError('Invalid value')
Здесь мы генерируем исключение ValueError с сообщением об ошибке.
После генерации исключения выполнение текущего кода прерывается и происходит переход в блок try/except для обработки этой ошибки.
Если исключение не будет обработано — программа завершится с ошибкой.
В этом примере функция calculate_discount проверяет входные данные. Если скидка меньше 0 или больше 100 — с помощью raise генерируется исключение ValueError с сообщением.6 609
🖥 whylogs
whylogs — это библиотека для мониторинга и аудита машинного обучения.
Она помогает делать ML системы более прозрачными, стабильными и надёжными за счёт постоянного мониторинга и аудита.
Она используется для того, чтобы:
— Отслеживать статистику и метрики моделей и данных в режиме реального времени.
— Выявлять дрейф данных - изменения в распределении данных со временем.
— Собирать примеры исключений и выбросов.
— Проводить аудит моделей и данных в поисках проблем.
— Генерировать автоматические отчёты и визуализации.
— Интегрировать с MLflow, TensorBoard и другими инструментами.
6 609
🖥 next
Функция next() возвращает следующий элемент итератора. Если итератор исчерпан, он возвращает значение по умолчанию, переданное в качестве аргумента. Если параметр по умолчанию не указан и итератор исчерпан, возникает исключение StopIteration.
6 609
🖥Архитектурный паттерн «Kappa»
Архитектурный паттерн «Kappa» представляет собой эффективный подход к обработке больших данных.
Он основывается на идее обработки данных в реальном времени без необходимости разделения данных на два потока, как это делается в архитектуре Lambda.
Ссылка на статью — КЛИК
6 609
🌐 Ретрит который изменит твою жизнь на 180 градусов 🌐
🔥 Мы, шаманы Альбина и Даниил, на практике знаем: никакой психолог или коуч не сможет залезть в вашу голову так, как работает наш метод с использованием растений-учителей
И приглашаем вас на уникальный, трансформационный ретрит 🔝
🔽 После которого вы сможете:
• Выйти на новый уровень дохода
• Наладить гармонию в отношениях
• Убрать психические и физические болезни, которые мучают вас годами
• И САМОЕ главное: узнаете своё истинное предназначение в Жизни!
⚠️ В программу ретрита включены:
- Проживание в шикарной, современной вилле
- Интеграция полученный знаний в жизнь от миллионеров
- Органическое питание
- Сопровождение после ретрита и поддержка 6 месяцев
✔️ Подписывайтесь на канал ретрита, чтобы подробнее ознакомиться с его программой, где проходит, и отзывами участников:
https://t.me/+27rdynsh-L4wMDEy
🎁 В закрепе при подписке вас ждет 2 подарка для саморазвития: гайды “Правила сознания” и “Модель сознания”
6 609
🦆Duck typing (утиная типизация)
Duck typing — это концепция, позволяющая использовать объекты независимо от их типа, базируясь на их свойствах и методах.
Основная идея — не проверять тип объекта напрямую, а пытаться использовать его так, как нам нужно.
Преимущества:
— Нет необходимости привязываться к конкретным классам и типам.
— Код становится более гибким и менее связанным.
— Легче расширять и изменять код, добавляя новые типы.
— Упрощает полиморфизм.
6 609
Полезная библиотеки для Python.
Python PDF Handling Tutorial — интересная подборка скриптов для работы с PDF-файлами в Python.
Вы научитесь:
- Извлекать текст и изображения из PDF файлов.
- Извлекать таблицы и URL адреса из PDF файлов.
- Извлекать страницы из PDF файлов как изображения.
- Создавать PDF файлы.
- Добавлять текст, изображения и таблицы в PDF файлы.
- Выделять текст в PDF файлах и многое другое.
🖥
GitHub
6 609
Упрощенная работа с JSON.
Казалось бы, куда еще проще, но есть один интересный пакет JMESpath, который позволяет декларативно указать, как извлекать элементы из документа JSON.
Основные примеры использования показаны на картинке, там нет ничего сложного. Метод search принимает паттерн, по которому требуется извлечь данные, а также словарь (который в общем-то похож на JSON).
Вообще возможностей у пакета достаточно, поэтому он достоен изучения и применения в проектах. Подробнее советую почитать в документации.
6 609
Криптографически безопасная генерация случайных чисел.
Подход основан на CSPRNG, что гарантирует хорошую безопасность.
Что такое CSPRNG?
Это стандарт, который расшифровывается как: Криптографически стойкий генератор псевдослучайных чисел. В отличие от обычных генераторов псевдослучайных чисел (PRNG), CSPRNG спроектированы так, чтобы быть устойчивыми к криптографическим атакам и обеспечивать высокий уровень безопасности.
Основные преимущества:
1. CSPRNG нацелен на создание выходных данных, которые статистически неотличимы от истинной случайности. Это означает, что сгенерированные числа должны обладать свойствами случайности, такими как равномерное распределение и непредсказуемость.
2. Даже если злоумышленник знает алгоритм генератора и предыдущие выходные данные, он все равно не сможет вычислять будущие значения, так как данные непредсказуемы.
3. CSPRNG защищен от попытки предсказания данных и влияния на сгенерированные числа.
6 609
Аннотация типов.
Дает нам возможность проставлять в коде "подсказки" для программиста, не используя комментарии через #
При большом количестве кода бывает, что просто забудешь какой тип должна принять / вернуть функция. Для этого и можно воспользоваться этой полезной фичей.
А еще можно воспользоваться модулем mypy, чтобы находить ошибки несоответствия типов в коде👁🗨
6 609
😈Разница между __str__ и __repr__
Оба магических метода
__str__ и __repr__ используются для получения строкового представления объекта. Давайте разберемся, в чем же собственно разница между ними.
Метод __str__ используется для создания вывода для конечного пользователя, а __repr__ в основном используется для отладки и разработки. Другими словами, цель __repr__ – быть однозначным, а __str__ – читабельным.
Функция print() и встроенная функция str() используют метод __str__ для отображения строкового представления объекта, а вот встроенная функция repr() использует для этого метод __repr__.