ar
Feedback
Pythoner

Pythoner

الذهاب إلى القناة على Telegram

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

إظهار المزيد
6 734
المشتركون
لا توجد بيانات24 ساعات
-357 أيام
-8530 أيام
أرشيف المشاركات
Получи грант до 3,48 млн на обучение дизайну Поступай на дизайн в Центральный университет с грантом. Для учеников 10–11-х кла
Получи грант до 3,48 млн на обучение дизайну Поступай на дизайн в Центральный университет с грантом. Для учеников 10–11-х классов и СПО. Освой графический, UI/UX и продуктовый дизайн. Создавай визуальные концепты будущего. На программе студенты получают фундаментальную базу, развивают прикладные навыки, приобретают опыт работы над реальными проектами, собирают портфолио и строят связи внутри дизайн-сообщества Подать заявку #реклама 16+ cu.ru О рекламодателе

✈️Тернарный оператор, также известный как условный оператор, является уникальным оператором, который используется для выполне
✈️Тернарный оператор, также известный как условный оператор, является уникальным оператором, который используется для выполнения конденсированных версий простых операторов if-else. Он принимает три аргумента: условие, значение, если условие истинно, и значение, если условие ложно. ➡️Применение тернарного оператора Тернарный оператор используется, когда мы хотим сократить код и упростить чтение. Это особенно полезно в случаях, когда нам нужно сделать простое условное присваивание. Однако из-за его сжатого формата, использование тернарного оператора в сложных условиях может затруднить понимание кода. ➡️Тернарный оператор в Python Да, Python поддерживает тернарный оператор. В Python тернарный оператор выглядит следующим образом: x if condition else y. Здесь x присваивается, если условие истинно, иначе присваивается y. ➡️Пример использования тернарного оператора в Python:
age = 15
type = "teenager" if age < 18 else "adult"
print(type)  # Выведет: teenager
⬆️В этом примере, если переменная age меньше 18, переменной type присваивается значение "teenager", в противном случае - "adult". 🐍 Pythoner

Утраиваем бюджет на продвижение в Директе Запустите первое продвижение в Яндекс Директе с утроенным бюджетом и ИИ-помощником
Утраиваем бюджет на продвижение в Директе Запустите первое продвижение в Яндекс Директе с утроенным бюджетом и ИИ-помощником ✨ Используйте один из промокодов : При пополнении от 10 000 ₽ +20 000 ₽ Промокод START20 При пополнении от 15 000 ₽ +30 000 ₽ Промокод START30 Зарегистрироваться #реклама 16+ direct.yandex.ru О рекламодателе

Нужны 7 желающих для работы с искусственным интеллектом. Работа из дома. График свободный. Пришло задание — изучили — выполни
Нужны 7 желающих для работы с искусственным интеллектом. Работа из дома. График свободный. Пришло задание — изучили — выполнили — получили свои деньги. Деньги вы получаете в зависимости от сложности задания. Например: За задание могут платить 500-10.000 рублей. В зависимости от сложности. 500 рублей — это около 5-30 минут. 10 000 руб. это 5-6 часов. Работа может быть разной: Оживить фото, создать видео, реставрировать старое фото и т.д. 💰 В среднем новичок получает до 150.000 руб в месяц. А опытный может и 300-500т. Мы обучим вас сами: — 3 дня уроков по 30 минут — Домашки с проверкой ⚡ Набор заканчивается завтра. Для регистрации жмите кнопку "Зарегистрироваться": Зарегистрироваться #реклама 16+ neuromachina.ru О рекламодателе

Как стать QA с нуля и выйти на оффер от 150 К/мес За 10 лет в IT я прошёл путь от первых шагов до Senior QA. И знаю, как это выглядит изнутри: Сначала не знаешь, с чего начать, и тонешь в инфе Потом учишься, стараешься, но на собесах всё равно валишься А дальше работа вроде есть, а зарплата годами стоит на месте И всё время кажется, что проблема в тебе. Но чаще всего проблема не в мотиваци, а в отсутствии системы. Именно её я и выстраивал все эти годы: через ошибки, отказы и набитые шишки — пока не дошёл до офферов от X5, .bank, Bars Group и VL Projects. А теперь собрал этот опыт в понятный маршрут и делюсь им в канале: – как стартовать и расти в QA – как наработать опыт для резюме – как готовиться к собеседованиям – как проходить отбор увереннее – как выйти на оффер от 150К/мес Подписывайся, пройдём этот путь вместе Подписаться #реклама 16+ edqa.ru О рекламодателе

Кто и как смотрит контент на Connected TV? Времена меняются, а люди по-прежнему проводят вечера у телевизора — только теперь сами выбирают, что смотреть: 📊 66% переключаются между онлайн-кинотеатрами и видеоплатформами 📊 24% предпочитают только онлайн-кинотеатры 📊 10% смотрят контент исключительно на видеоплатформах Аналитики Яндекс Рекламы изучили обезличенные данные пользователей 5,8 млн устройств CTV с YaOS. В среднем пользователи проводят за просмотром контента 4 часа 11 минут в сутки. Охватить эту аудиторию помогает реклама на Connected TV. Настроить показы видео и ТВ-билбордов с умной оптимизацией можно прямо в Директе. ⚡ Запустить продвижение на CTV Перейти на сайт #реклама 16+ yandex.ru О рекламодателе

Запустите рекламу в телеграм-каналах через Яндекс Директ Перфоманс-реклама в мессенджере продолжает работать: • Таргетинг по
Запустите рекламу в телеграм-каналах через Яндекс Директ Перфоманс-реклама в мессенджере продолжает работать: • Таргетинг по тематикам и регионам • Умный подбор каналов • Гибкие модели оплаты (CPC и CPV) Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе

✈️Сегодня мы нырнем в глубины Python и раскопаем настоящие жемчужины — нестандартные способы использования декораторов. Держи
✈️Сегодня мы нырнем в глубины Python и раскопаем настоящие жемчужины — нестандартные способы использования декораторов. Держитесь крепче, будет интересно! ➡️Декораторы на стероидах: когда обычных функций мало Помните, как вы впервые узнали о декораторах? Наверняка это было что-то вроде @staticmethod или простенького таймера. Но, друзья мои, это лишь верхушка айсберга! Давайте посмотрим, как можно выжать из декораторов все соки. ➡️1. Декоратор-шпион: следим за аргументами
import functools

def spy_args(func):
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        print(f"Вызов {func.__name__} с аргументами: {args}, {kwargs}")
        return func(*args, **kwargs)
    return wrapper

@spy_args
def секретная_функция(x, y, шифр="007"):
    return x + y

результат = секретная_функция(3, 4, шифр="008")
⬆️Этот хитрый декоратор не просто логирует вызовы, он позволяет отслеживать все входящие аргументы. Представьте, как это может пригодиться при отладке сложных систем! ➡️2. Декоратор-трансформер: меняем возвращаемое значение
def to_json(func):
    import json
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        result = func(*args, **kwargs)
        return json.dumps(result)
    return wrapper

@to_json
def получить_данные():
    return {"имя": "Алиса", "возраст": 30}

json_data = получить_данные()
⬆️Этот декоратор автоматически сериализует результат в JSON. Удобно, правда? Особенно когда вы работаете с API и вам нужно гарантировать формат ответа. ➡️3. Декоратор-многостаночник: применяем несколько функций
def применить_все(*funcs):
    def декоратор(f):
        @functools.wraps(f)
        def wrapper(*args, **kwargs):
            result = f(*args, **kwargs)
            for func in funcs:
                result = func(result)
            return result
        return wrapper
    return декоратор

def удвоить(x): return x * 2
def прибавить_один(x): return x + 1

@применить_все(удвоить, прибавить_один)
def базовая_функция(x):
    return x

результат = базовая_функция(10)  # Вернёт 21
⬆️Этот монстр позволяет применить целую цепочку функций к результату. Представьте, как это может упростить обработку данных в сложных потоках! ➡️4. Декоратор-ленивец: отложенное выполнение
class Ленивый:
    def __init__(self, function):
        self.function = function
        self.результат = None

    def __call__(self, *args, **kwargs):
        if self.результат is None:
            self.результат = self.function(*args, **kwargs)
        return self.результат

@Ленивый
def сложные_вычисления():
    print("Выполняю сложные вычисления...")
    return 42

результат = сложные_вычисления()  # Вычисления выполняются
результат = сложные_вычисления()  # Используется кэшированный результат
⬆️Этот декоратор позволяет отложить выполнение функции до момента первого вызова, а затем кэширует результат. Идеально для оптимизации производительности! 🐍Pythoner

Не грузится? Понимаем. Бесплатный мессенджер для вашей компании - Битрикс24. Личные и групповые чаты, видеозвонки, каналы и н
Не грузится? Понимаем. Бесплатный мессенджер для вашей компании - Битрикс24. Личные и групповые чаты, видеозвонки, каналы и нейросеть. Всё привычно и удобно. Начните работать на бесплатном тарифе уже сейчас. Узнать больше #реклама 16+ bitrix24.ru О рекламодателе

⚡️Джуны и мидлы, общий сбор! Пришел вас порадовать, если вы хотите прокачаться в теме параллелизма. В школе Python разработки
⚡️Джуны и мидлы, общий сбор! Пришел вас порадовать, если вы хотите прокачаться в теме параллелизма.   В школе Python разработки Pytex 16 июня в 19:00 по МСК пройдет открытый урок с Senior-разработчиком Артёмом Шумейко.  На уроке разберётесь: 🟢почему async/await сам по себе не делает приложение быстрым 🟢где проходит граница между корутинами, потоками и процессами 🟢как защищать базу данных от лавины одинаковых запросов 🟢как работают Single Flight и распределённые блокировки 🟢как координировать несколько воркеров при работе с внешними API 🟢как использовать очереди и батчинг событий, чтобы не увеличивать latency 🟢как правильно выносить тяжёлые операции в фоновые задачи Посмотрите на реальные проблемы, которые возникают в проде под нагрузкой, и на паттерны, которые используют команды для их решения. ЗАПИСАТЬСЯ НА ОТКРЫТЫЙ УРОК Это абсолютно бесплатно, поэтому регистрируйтесь и качайте харды ⬆️ А больше про параллелизм в Python читайте в этом канале

Хочешь начать карьеру в ИТ на оплачиваемой стажировке? Присоединяйся к ИТ-лагерю Т1 для студентов вузов технических и ИТ-спец
Хочешь начать карьеру в ИТ на оплачиваемой стажировке? Присоединяйся к ИТ-лагерю Т1 для студентов вузов технических и ИТ-специальностей. Теперь в обновлённом формате: ещё больше практики, доступ к платформам Т1, а участие — оплачивается и оформляется как стажировка. За 2,5 месяца вместе с проектной командой ты пройдешь полный цикл создания ИТ-продукта: от идеи до разработки прототипа и финальной защиты. Превратить идею в проект помогут мастер-классы, общение с экспертами и погружение в процессы Т1. Направления подготовки: ✅ ручное тестирование; ✅ прикладное администрирование (DevOps); ✅ системный анализ; ✅ фронтенд-разработка (React); ✅ бэкэнд-разработка (Java). Подай заявку до 30 июня! Старт — в июле. Узнать больше #реклама 16+ career.t1.ru О рекламодателе

✈️Проблема традиционного подхода Многие статьи рекомендуют создавать полноценный React SPA и использовать Django только как R
✈️Проблема традиционного подхода Многие статьи рекомендуют создавать полноценный React SPA и использовать Django только как REST API. Однако такой подход имеет ряд недостатков, особенно для небольших проектов: 💬Дублирование кода (маршрутизация, аутентификация, авторизация) 💬Необходимость создания отдельных страниц ошибок 💬Дублирование состояний и моделей данных Хотя для некоторых проектов это может быть приемлемым решением, для моего небольшого приложения такой подход кажется излишним. ➡️Альтернативное решение: React как шаблонизатор Идея заключается в том, чтобы использовать React не как полноценный фронтенд-фреймворк, а как шаблонизатор для Django. Это позволит нам сохранить преимущества обоих инструментов. ➡️Точки монтирования React React имеет удобное свойство: он монтируется не просто в body DOM или случайное место, а именно в указанный вами элемент. Мы можем использовать это для реализации маршрутизации, используя одну точку монтирования для каждой страницы:
ReactDOM.render(
  &lt;h1&gt;Страница 1!&lt;/h1&gt;,
  document.getElementById('page-1')
);

ReactDOM.render(
  &lt;h1&gt;Страница 2!&lt;/h1&gt;,
  document.getElementById('page-2')
);
➡️Маршрутизация на стороне Django На стороне Django нам нужно только отрендерить &lt;div&gt; с соответствующим идентификатором:
{% extends "base.html" %}
{% load static %}

{% block content %}
  &lt;div id="{{ element_id }}"&gt;&lt;/div&gt;
  &lt;script src="{% static 'index.js' %}"&gt;&lt;/script&gt;
{% endblock %}
➡️Оптимизация размера пакета Чтобы не загружать JavaScript для неиспользуемых страниц, мы можем использовать встроенную функцию React - Code Splitting:
let Page1 = React.lazy(() => import('./page1'))
let Page2 = React.lazy(() => import('./page2'))

ReactDOM.render(
  &lt;Suspense fallback={&lt;&gt;&lt;/&gt;}&gt;
    &lt;Page1/&gt;
  &lt;/Suspense&gt;,
  document.getElementById('page-1')
);
➡️Передача контекстных данных Для передачи данных из Django в React мы можем использовать встроенный в Django тег json_script:
{% extends "base.html" %}
{% load static %}

{% block content %}
  &lt;div id="{{ element_id }}"&gt;&lt;/div&gt;
  {{ page_context | json_script:'page-context' }}
  &lt;script src="{% static 'index.js' %}"&gt;&lt;/script&gt;
{% endblock %}
➡️На стороне React мы можем получить эти данные с помощью пользовательского хука:
export let usePageContext = &lt;T = any&gt;() => {
  let [pageContext, setPageContext] = useState&lt;T | undefined&gt;(undefined)
  useEffect(() => {
    let pageContext = document.getElementById('page-context').textContent
    setPageContext(JSON.parse(pageContext))
  }, [])
  return pageContext as T
}

const TodosIndexPage = memo(() => {
  let pageContext = usePageContext&lt;{ todos: Todo[] }&gt;()
  let todos = pageContext?.todos
  return &lt;&gt;
    &lt;h1&gt;React todos page&lt;/h1&gt;
    &lt;ul&gt;
      {todos?.map(todo => &lt;li key={todo.id}&gt;{todo.title}&lt;/li&gt;)}
    &lt;/ul&gt;
  &lt;/&gt;
})
💡Заключение Этот подход позволяет использовать React как шаблонизатор для Django, сохраняя при этом простоту разработки и избегая дублирования кода. Основные шаги для реализации: 💬Создание отдельных точек монтирования для React 💬Настройка разделения кода для оптимизации производительности 💬Реализация маршрутизации на стороне Django 💬Передача контекста страницы из Django в React 💬Получение и использование контекста страницы на стороне React 🐍Pythoner

Не грузится? Понимаем. Бесплатный мессенджер для вашей компании - Битрикс24. Личные и групповые чаты, видеозвонки, каналы и н
Не грузится? Понимаем. Бесплатный мессенджер для вашей компании - Битрикс24. Личные и групповые чаты, видеозвонки, каналы и нейросеть. Всё привычно и удобно. Начните работать на бесплатном тарифе уже сейчас. Узнать больше #реклама 16+ bitrix24.ru О рекламодателе

Недавно репозитарий Python был недоступен из России. Простой способ всё починить: SkazkaVPN. ✓ Беспрепятственный доступ к зарубежным ресурсам. ✓ Российские сервисы работают напрямую и не жалуются на VPN. ✓ Блокировка назойливой рекламы на сайтах. ✓ Скорость — до 200 Мбит/с. ✓ Возврат остатка по первому требованию. ✓ Разные сервера для разных сценариев, например: · Мост — хитрый маршрут за границу сначала через российский сервер, затем через зарубежный. · Вольный Ютуб — подключение к YouTube с российского сервера, без рекламы. · Русские народные — все подключения через российский сервер, пригодится за границей. · Сказки Андерсена — все подключения через сервер в Дании.

✈️Анализ текста с помощью spaCy ➡️Токенизация и лемматизация SpaCy предоставляет эффективные инструменты для разбиения текста
✈️Анализ текста с помощью spaCy ➡️Токенизация и лемматизация SpaCy предоставляет эффективные инструменты для разбиения текста на токены и определения их базовых форм:
import spacy

nlp = spacy.load("ru_core_news_sm")
doc = nlp("Кошки любят спать на мягких подушках.")

for token in doc:
    print(f"{token.text} -> {token.lemma_}")
➡️Определение частей речи SpaCy автоматически определяет части речи для каждого токена:
for token in doc:
    print(f"{token.text} - {token.pos_}")
➡️Распознавание именованных сущностей Библиотека способна выделять в тексте именованные сущности, такие как имена, организации и локации:
for ent in doc.ents:
    print(f"{ent.text} - {ent.label_}")
➡️Генерация текста с использованием spaCy Хотя spaCy в первую очередь предназначен для анализа текста, его можно использовать и для помощи в генерации: ➡️Использование зависимостей для построения предложений SpaCy определяет синтаксические зависимости между словами, что может быть использовано для создания новых предложений:
def generate_sentence(subject, verb, object):
    doc = nlp(f"{subject} {verb} {object}")
    return " ".join([token.text for token in doc])

print(generate_sentence("Программист", "пишет", "код"))
➡️Использование векторных представлений слов Векторные представления слов в spaCy могут быть использованы для поиска семантически близких слов:
def find_similar_word(word, n=3):
    token = nlp(word)[0]
    similar_words = []
    for lex in nlp.vocab:
        if lex.has_vector:
            if lex.is_lower == token.is_lower and lex.is_alpha:
                similarity = token.similarity(lex)
                similar_words.append((lex.text, similarity))
    return sorted(similar_words, key=lambda x: x[1], reverse=True)[:n]

print(find_similar_word("компьютер"))
🐍Pythoner

Запустите рекламу в телеграм-каналах через Яндекс Директ Перфоманс-реклама в мессенджере продолжает работать: • Таргетинг по
Запустите рекламу в телеграм-каналах через Яндекс Директ Перфоманс-реклама в мессенджере продолжает работать: • Таргетинг по тематикам и регионам • Умный подбор каналов • Гибкие модели оплаты (CPC и CPV) Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе

✈️Тернарный оператор — это оператор, позволяющий записать условную конструкцию if-else в одну строку. ➡️Тернарный оператор ча
✈️Тернарный оператор — это оператор, позволяющий записать условную конструкцию if-else в одну строку. ➡️Тернарный оператор часто используется для условного присваивания значений переменной, выбора между двумя вариантами в одну строку. Он позволяет сократить и упростить запись условных выражений. Однако не рекомендуется использовать вложенные конструкции, т. к. это ухудшает читаемость. ➡️Простой пример:
a = 3
b = 10

print('a больше b') if a > b else print('a меньше b')

result = 'Четное' if a % 2 == 0 else 'Нечетное'
print(result)

# Результат:
# a меньше b
# Нечетное 
⬆️В данном примере тернарный оператор используется: —Для вывода одной из двух фраз в зависимости от условия a > b. —Для присваивания переменной result одного из двух значений в зависимости от четности a. 🐍Pythoner

Не грузится? Понимаем. Бесплатный мессенджер для вашей компании - Битрикс24. Личные и групповые чаты, видеозвонки, каналы и н
Не грузится? Понимаем. Бесплатный мессенджер для вашей компании - Битрикс24. Личные и групповые чаты, видеозвонки, каналы и нейросеть. Всё привычно и удобно. Начните работать на бесплатном тарифе уже сейчас. Узнать больше #реклама 16+ bitrix24.ru О рекламодателе

✈️Что такое итерируемый счетчик? Итерируемый счетчик в Python - это объект, который можно использовать в цикле for и других и
✈️Что такое итерируемый счетчик? Итерируемый счетчик в Python - это объект, который можно использовать в цикле for и других итерационных контекстах. Он позволяет последовательно получать значения, обычно числовые, в заданном диапазоне или по определенному правилу. ➡️Реализация итерируемого счетчика Давайте рассмотрим пример реализации простого итерируемого счетчика:
class IterableCounter:
    def __init__(self, start, end):
        self.current = start
        self.end = end

    def __iter__(self):
        return self

    def __next__(self):
        if self.current > self.end:
            raise StopIteration
        else:
            self.current += 1
            return self.current - 1
В этом примере: 💬init инициализирует счетчик начальным и конечным значениями. 💬iter возвращает сам объект, делая его итератором. 💬next определяет логику получения следующего значения. ➡️Использование итерируемого счетчика Теперь мы можем использовать наш счетчик в цикле for:
counter = IterableCounter(1, 5)
for num in counter:
    print(num)
⬆️Этот код выведет числа от 1 до 5. ➡️Преимущества итерируемого счетчика 💬Гибкость: можно легко изменить логику генерации значений. 💬Экономия памяти: значения генерируются по мере необходимости. 💬Интеграция с циклами: легко использовать в стандартных конструкциях Python. ➡️Альтернативы В Python есть встроенные альтернативы для простых случаев: 💬range(): для последовательностей целых чисел. 💬enumerate(): для нумерации элементов итерируемого объекта. 💡Заключение Итерируемые счетчики в Python - мощный инструмент для создания пользовательских последовательностей. Они особенно полезны, когда стандартные функции не удовлетворяют специфическим требованиям вашей задачи. 🐍Pythoner

Онлайн-магистратура для IT: ИТМО, МИФИ + Яндекс Программы онлайн-магистратуры ИТМО и МИФИ в партнёрстве с Яндексом. Актуальные знания, практическое обучение и гибкий график. Учитесь, совмещая с работой. Доступна господдержка оплаты, отсрочка от армии Перейти на сайт #реклама 16+ О рекламодателе