fa
Feedback
Pythoner

Pythoner

رفتن به کانال در Telegram

Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику. Сотрудничество - @flattys Цены - @serpent_media Канал на бирже: https://telega.in/c/pythonercode

نمایش بیشتر
6 808
مشترکین
+224 ساعت
-17 روز
-4130 روز
آرشیو پست ها
✈️glom – это библиотека для обработки и трансформации данных в Python. Она помогает легко извлекать, преобразовывать и структ
✈️glom – это библиотека для обработки и трансформации данных в Python. Она помогает легко извлекать, преобразовывать и структурировать сложные данные, такие как JSON или вложенные словари. ➡️ Ключевая функция: Позволяет работать с глубоко вложенными структурами данных через простой и читаемый синтаксис, заменяя многострочные операции цепочками .get() или вложенными циклами. ➡️Пример использования:
from glom import glom

data = {'a': {'b': {'c': 'Hello, glom!'}}}
result = glom(data, 'a.b.c')  # Достаём значение по цепочке ключей
print(result)  # Вывод: 'Hello, glom!'
🖥GitHub 💡Главный плюс: Уменьшает сложность кода при работе с глубоко вложенными структурами, делая его чище и удобнее для поддержки. 🐍Pythoner

✈️Бинарный поиск - это эффективный алгоритм поиска элемента в упорядоченном списке данных. ➡️Бинарный поиск основан на принци
✈️Бинарный поиск - это эффективный алгоритм поиска элемента в упорядоченном списке данных. ➡️Бинарный поиск основан на принципе "разделяй и властвуй". Он работает следующим образом: сначала мы определяем середину списка и сравниваем искомый элемент с этой серединой. Если элемент равен середине, то поиск завершается успешно. Если элемент меньше середины, то мы продолжаем поиск в левой половине списка. Если элемент больше середины, то мы продолжаем поиск в правой половине списка. Повторяем эти шаги до тех пор, пока не найдем искомый элемент или пока список не будет пустым. ➡️Вот пример реализации бинарного поиска на языке Python:
def binary_search(arr, target):
    left = 0
    right = len(arr) - 1

    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1

    return -1

# Пример использования
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 5
result = binary_search(arr, target)
if result != -1:
    print("Элемент найден в позиции", result)
else:
    print("Элемент не найден")
➡️Преимущества бинарного поиска Бинарный поиск обладает несколькими преимуществами по сравнению с другими алгоритмами поиска. Во-первых, он имеет временную сложность O(log n), что делает его очень эффективным даже для больших списков данных. Во-вторых, он работает только с упорядоченными списками, что позволяет сократить количество операций поиска. И, наконец, бинарный поиск является универсальным и может быть применен для поиска элементов в любом упорядоченном списке данных. 🐍Pythoner

✈️DockerPyze – удобная библиотека для работы с Docker из Python. DockerPyze позволяет управлять Docker-контейнерами прямо из
✈️DockerPyze – удобная библиотека для работы с Docker из Python. DockerPyze позволяет управлять Docker-контейнерами прямо из Python-кода — запускать, останавливать и проверять их статус без сложных команд. ➡️Зачем нужно: Чтобы автоматизировать работу с Docker через простые Python-скрипты вместо ручных команд в терминале. ➡️Пример использования:
from dockerpyze import DockerClient

# Подключаемся к Docker
docker = DockerClient()

# Получаем список всех контейнеров
containers = docker.list_containers()
print(f"Запущено контейнеров: {len(containers)}")
🖥 GitHub 💡Заключение - Работает со всем, что умеет Docker. - Команды как в Python — понятные и читаемые. - Не нужно самому разбирать ошибки — библиотека сделает это за вас. 🐍 Pythoner

✈️Библиотека для контроля нагрузки при выполнении асинхронных HTTP-запросов или любых других корутин. Позволяет ограничивать
✈️Библиотека для контроля нагрузки при выполнении асинхронных HTTP-запросов или любых других корутин. Позволяет ограничивать количество одновременных операций с гибкими настройками. ➡️Главная функция: Ограничивает RPS (запросов в секунду) и количество одновременных соединений — защищает сервисы от перегрузки при парсинге или работе с API. ➡️Пример использования:
import aiometer
import httpx

async def fetch(url):
    async with httpx.AsyncClient() as client:
        return await client.get(url)

urls = [...]  # Список URL
results = await aiometer.run_on_each(fetch, urls, max_per_second=5)
🖥GitHub 💡Особенно полезно: Интеграция с asyncio и anyio + поддержка кастомных лимитеров. Замена самописным «костылям» с семафорами. 🐍 Pythoner

🤔Разбор Эквивалентно a is b and b is c. None - единственный объект, а, b, с на него ссылаются 🐍 Pythoner

Что выдаст код выше❔
Anonymous voting

photo content

✈️attrs — библиотека для создания классов с автоматической реализацией методов __init__ и других. Главная функция - автоматич
✈️attrs — библиотека для создания классов с автоматической реализацией методов __init__ и других. Главная функция - автоматически генерирует стандартные методы Python-классов через декларативный синтаксис, сохраняя контроль над типами и валидацией. ➡️Пример использования:
import attr

@attr.s
class Cat:
    name: str = attr.ib()  # обязательное поле
    age: int = attr.ib(default=1)  # с значением по умолчанию
    is_fluffy: bool = attr.ib(default=True)  # и ещё одно

murzik = Cat(name="Мурзик", age=3)
print(murzik)  # Выведет: Cat(name='Мурзик', age=3, is_fluffy=True)
💡Заключение: attrs — даёт скорость разработки + безопасность типов. Совместимость с mypy и IDE (подсказки типов работают из коробки). 🐍Pythoner

✈️Метод dict.get() в Python используется для получения значения по ключу из словаря. Он принимает ключ в качестве аргумента и
✈️Метод dict.get() в Python используется для получения значения по ключу из словаря. Он принимает ключ в качестве аргумента и возвращает соответствующее значение. В случае, если ключ отсутствует в словаре, метод возвращает значение по умолчанию, которое можно указать вторым аргументом. ➡️Пример получения значения по ключу:
data = {"name": "Иван", "age": 30}
name = data.get("name") — «Иван»
age = data.get("age", 25) — 30 (ключ есть, берём его значение)
print(name, age) — вывод: «Иван» 30.
➡️Использование значения по умолчанию:
data = {"name": "Анна"}
Ключа "city" нет, поэтому вернётся значение по умолчанию
city = data.get("city", "Не указан") — «Не указан»
print(city) — вывод: «Не указан».
➡️Работа с вложенными словарями:
data = { "user": { "name": "Павел", "email": "example.com" } }
email = data.get("user", {}).get("email", "Email отсутствует") — «example.com»
phone = data.get("user", {}).get("phone", "Телефон не указан") — «Телефон не указан».
💡Метод dict.get() удобен в тех случаях, когда нужно получить значение из словаря и быть уверенным, что при отсутствии ключа программа не будет выдавать ошибку. Он также позволяет удобно установить значение по умолчанию, если ключ не найден. 🐍Pythoner

Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как
Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе

✈️Sparrow — это open-source инструмент для автоматического извлечения данных из документов (PDF, изображений и т.д.). Он испо
✈️Sparrow — это open-source инструмент для автоматического извлечения данных из документов (PDF, изображений и т.д.). Он использует ML-модели, чтобы превращать неструктурированные файлы в готовые к анализу данные. ➡️Пример использования sparrow через API:
import requests

response = requests.post(
    'http://localhost:8000/extract',
    files={'file': open('ваш_документ.pdf', 'rb')}
)

print(response.json())  # Ваши данные в структурированном виде!
💡Ключевое преимущество: Sparrow извлекает текст, таблицы и рукописные данные из документов, преобразуя их в структурированный формат с полной локальной обработкой для вашей безопасности. 🐍Pythoner

➡️Функция .upper() Функция .upper() в Python используется для преобразования всех символов в строке в верхний регистр. Это оч
➡️Функция .upper() Функция .upper() в Python используется для преобразования всех символов в строке в верхний регистр. Это очень полезно, когда вы хотите сравнить строки без учета регистра или обеспечить единообразие ввода данных. Пример использования:
text = 'Hello, World!'
print(text.upper())  # Вывод: 'HELLO, WORLD!'
➡️Функция .lower() С другой стороны, функция .lower() преобразует все символы строки в нижний регистр. Это также может быть полезно при сравнении строк или обеспечении единообразия ввода. Пример использования:
text = 'Hello, World!'
print(text.lower())  # Вывод: 'hello, world!'
➡️Применение .upper() и .lower() Функции .upper() и .lower() часто используются вместе для обеспечения единообразия ввода и процесса обработки данных. Например, вы можете преобразовать ввод пользователя в нижний регистр перед проверкой его в словаре, где все ключи хранятся в нижнем регистре. Таким образом, вы можете быть уверены, что ваш код будет работать независимо от того, как пользователь ввел данные. 🐍Pythoner

✈️В Python все является объектом, даже сами классы. Это открывает перед нами удивительные возможности для создания динамическ
✈️В Python все является объектом, даже сами классы. Это открывает перед нами удивительные возможности для создания динамических структур кода. Давайте погрузимся в мир создания классов и функций "на лету" с помощью type() и метаклассов. ➡️Магия функции type() Функция type() в Python - это не просто инструмент для определения типа объекта. Она также может быть использована для создания новых классов динамически. Вот простой пример:
MyClass = type('MyClass', (), {'x': 42, 'my_method': lambda self: print("Hello!")})

obj = MyClass()
print(obj.x)  # Выведет: 42
obj.my_method()  # Выведет: Hello!
⬆️Здесь мы создали класс MyClass с атрибутом x и методом my_method. Удивительно, правда? ➡️Шаг вперед: метаклассы Метаклассы - это классы классов. Они позволяют нам контролировать процесс создания классов. Рассмотрим пример:
class MyMetaclass(type):
    def __new__(cls, name, bases, attrs):
        attrs['additional_method'] = lambda self: print("I'm additional!")
        return super().__new__(cls, name, bases, attrs)

class MyClass(metaclass=MyMetaclass):
    pass

obj = MyClass()
obj.additional_method()  # Выведет: I'm additional!
⬆️В этом примере мы создали метакласс, который добавляет новый метод ко всем классам, использующим его. ➡️Практическое применение Динамическое создание классов и функций может быть полезно в различных сценариях: - Фабрики классов: создание классов на основе внешних данных или конфигурации. - Декораторы классов: модификация классов без изменения их исходного кода. - ORM (Object-Relational Mapping): динамическое создание классов на основе структуры базы данных. 🐍Pythoner

Цифровое тридевятое царство появилось в Облаке Mail ✨ Очень сказочные дела творятся в Облаке Mail ✨ Отгадайте загадку про ска
+8
Цифровое тридевятое царство появилось в Облаке Mail ✨ Очень сказочные дела творятся в Облаке Mail ✨ Отгадайте загадку про сказочных героев и волшебные силы подписки Mail Space. Кто правильно отгадает, получит дивные подарки. ❤️ Перейти на сайт #реклама 16+ cloud.mail.ru О рекламодателе

✈️В Python для работы с SQLite мы будем использовать модуль sqlite3, который входит в стандартную библиотеку Python. Начнем с
✈️В Python для работы с SQLite мы будем использовать модуль sqlite3, который входит в стандартную библиотеку Python. Начнем с импорта модуля и создания соединения с базой данных:
import sqlite3

# Создание соединения с базой данных
conn = sqlite3.connect('mydatabase.db')
➡️После создания соединения мы можем создать таблицы в нашей базе данных. Вот пример создания таблицы "users":
# Создание таблицы "users"
conn.execute('''CREATE TABLE users
                (id INTEGER PRIMARY KEY AUTOINCREMENT,
                name TEXT NOT NULL,
                age INTEGER NOT NULL);''')
➡️Вставка данных в базу данных После создания таблицы мы можем добавить данные в базу данных. Для этого мы можем использовать метод execute() и executemany() для вставки одной или нескольких строк данных соответственно. Вот пример вставки данных в таблицу "users":
# Вставка данных в таблицу "users"
conn.execute("INSERT INTO users (name, age) VALUES ('John Doe', 25)")
conn.execute("INSERT INTO users (name, age) VALUES ('Jane Smith', 30)")
conn.executemany("INSERT INTO users (name, age) VALUES (?, ?)", [('Alice Johnson', 35), ('Bob Brown', 40)])
🐍Pythoner

✈️Bulkhead (перегородка на корабле) — это архитектурный паттерн, который защищает сервис от «цепных» отказов. Идея простая: е
✈️Bulkhead (перегородка на корабле) — это архитектурный паттерн, который защищает сервис от «цепных» отказов. Идея простая: если один компонент падает или начинает работать медленно, остальные продолжают функционировать. ➡️Как это работает: - разделение ресурсов (пулы потоков, подключения к БД, очереди) для разных компонентов - ограничение «захвата» всех ресурсов одним зависимым сервисом - предотвращение лавинообразных отказов ➡️Пример: Если сервис обращается к 3 внешним API, у каждого свой пул потоков. Тогда сбой в одном API не «забьёт» все подключения и не остановит остальные запросы. 💡Плюсы: — устойчивость к локальным сбоям — предсказуемая деградация системы (отваливается часть, а не всё) 💡Минусы: — усложнение конфигурации и мониторинга — необходимость балансировки ресурсов между пулами 🐍Pythoner

✈️В Django ORM можно использовать механизм миграций для изменения структуры базы данных без необходимости вручную вносить изм
✈️В Django ORM можно использовать механизм миграций для изменения структуры базы данных без необходимости вручную вносить изменения через SQL запросы. Миграции позволяют вам определять изменения в моделях и применять их к базе данных автоматически. ➡️Для начала работы с миграциями в Django необходимо создать начальное состояние базы данных, которое будет соответствовать текущим моделям вашего приложения. Для этого можно воспользоваться командой python manage.py makemigrations, которая создаст файл миграции в папке migrations вашего приложения. ➡️Затем, чтобы применить миграции к базе данных, можно воспользоваться командой python manage.py migrate, которая применит все необходимые изменения к базе данных. При этом Django будет автоматически отслеживать и применять новые миграции при изменениях в моделях. ➡️Миграции в Django ORM могут включать различные операции, такие как создание новых таблиц, добавление и удаление полей, изменение типа данных и многое другое. Кроме того, можно создавать собственные миграции с помощью команды python manage.py makemigrations --empty, чтобы определить свои собственные изменения в базе данных. 👀Использование миграций в Django ORM делает процесс изменения структуры базы данных более удобным и безопасным, позволяя сохранить целостность данных и избежать ошибок при ручном внесении изменений. 🐍Pythoner

🔥 БЕСПЛАТНЫЙ КУРС ПО СОЗДАНИЮ НЕЙРО-СОТРУДНИКОВ НА GPT И ДРУГИХ LLM 🔥 Ищете практический и углубленный курс, чтобы освоить
🔥 БЕСПЛАТНЫЙ КУРС ПО СОЗДАНИЮ НЕЙРО-СОТРУДНИКОВ НА GPT И ДРУГИХ LLM 🔥 Ищете практический и углубленный курс, чтобы освоить создание нейро-сотрудников? Мы создали курс из 5 объемных занятий. Это именно то, что нужно, чтобы прокачать свои навыки абсолютно бесплатно! 📌 Темы занятий: 1. Введение в мир нейро-сотрудников 2. Как работают LLM и их аналоги 3. Создание базы знаний для нейро-сотрудника (RAG) 4. Тестирование и отладка нейро-сотрудников 5. Интеграция нейро-сотрудников в Production Вот 5 тем курса - он максимально простой и доступный, общеобразовательный, без какого-либо сложного программирования 📚Прохождение этого курса, скорее всего, займет у вас от 1 до 3 часов 🤖 Присоединяйтесь к нашему бесплатному курсу и разберитесь в этой увлекательной теме с нами!

Repost from IT memer

✈️"Чистая" функция - это функция, которая при выполнении одного и того же входного значения всегда возвращает одинаковый резу
✈️"Чистая" функция - это функция, которая при выполнении одного и того же входного значения всегда возвращает одинаковый результат и не имеет побочных эффектов. То есть, она не влияет на состояние программы или внешние переменные. Результат работы "чистой" функции зависит только от переданных ей аргументов. ➡️Пример чистой функции Давайте рассмотрим пример простой чистой функции на языке Python. Предположим, у нас есть функция double, которая удваивает переданное число:
def double(number):
    return number * 2
⬆️Эта функция является "чистой", потому что она всегда возвращает удвоенное значение переданного числа и не имеет побочных эффектов. Независимо от контекста выполнения и внешних переменных, результат работы этой функции будет одинаковым при одинаковом входном значении. ➡️Пример нечистой функции Рассмотрим теперь пример нечистой функции на языке Python. Предположим, у нас есть функция add_to_list, которая добавляет переданное значение в глобальный список:
my_list = []

def add_to_list(value):
    my_list.append(value)
⬆️Эта функция не является "чистой", потому что она изменяет состояние программы путем добавления значения в глобальный список my_list. Результат работы этой функции зависит не только от переданного аргумента, но и от текущего состояния списка my_list. 🐍Pythoner