cookie

We use cookies to improve your browsing experience. By clicking «Accept all», you agree to the use of cookies.

avatar

Библиотека питониста | Python, Django, Flask

Все самое полезное для питониста в одном канале. Список наших каналов: https://t.me/proglibrary/8353 Учиться у нас: https://proglib.io/w/907158ab Обратная связь: @proglibrary_feedback_bot По рекламе: @proglib_adv Прайс: @proglib_advertising

Show more
Advertising posts
40 857
Subscribers
+1024 hours
+377 days
+29630 days
Posting time distributions

Data loading in progress...

Find out who reads your channel

This graph will show you who besides your subscribers reads your channel and learn about other sources of traffic.
Views Sources
Publication analysis
PostsViews
Shares
Views dynamics
01
🐍💪 ТОП-5 вопросов повышенной сложности на собеседовании по Python Метаклассы, дескрипторы, модификаторы доступа — звучит сложно? В новой статье разбираем 5 вопросов, которые часто задают на собеседованиях по Python. 🔗 Читать статью 🔗 Зеркало
1 75132Loading...
02
👩🏻‍💻📓 Гайд по последовательностям в Python Последовательность — это структура данных, которая содержит элементы, организованные в определённом порядке. Доступ к этим элементам можно получить через обращение по индексу. В Python основные типы последовательностей — это списки, кортежи и строки. Новое руководство на Real Python рассматривает: • Характеристики последовательностей; • Общие операции над последовательностями; • Специальные методы последовательностей; • Классы Sequence и MutableSequence; • Создание пользовательских изменяемых и неизменяемых последовательностей. 🔗 Читать статью
2 48127Loading...
03
Что делает yield в Python? Это оператор, который используется в генераторных функциях вместо return. Обычная функция завершает работу если встретилось выражение return, или закончился код функции, или возникло исключение. После выполнения функции, управление возвращается. Если мы имеем дело с генераторной функцией, то каждый раз, когда внутри неё встречается yield, выполнение приостанавливается и возвращает значение. При следующем запросе, генератор начинает работать с того же места, где он завершил работу в прошлый раз. Так как оператор yield не завершает работу генератора, он может использоваться несколько раз. 📎Пример генераторной функции с yield: def simple_generator(): yield "Hello" yield "World" gen = simple_generator() print(next(gen)) # Выводит "Hello" print(next(gen)) # Выводит "World" #вопросы_с_собеседований
3 31732Loading...
04
🐍 Как скрыть чувствительные данные в отчётах об ошибках в Django В Django есть встроенная функция отправки сообщений об ошибках приложения небольшому списку администраторов. Нужно просто настроить параметр ADMINS и подготовить приложение к отправке электронных писем. Все ошибки (со статусом 500 и выше) будут вызывать отправку нового сообщения со всеми деталями. Это удобно, но такие сообщения могут содержать конфиденциальную информацию (пароли, номера кредитных карт, личные данные и т.д.). Статья в блоге Гонсало Валерио посвящена методам фильтрации таких чувствительных данных с помощью декораторов @sensitive_variables() и @sensitive_post_parameters(). 🔗 Читать статью
3 59227Loading...
05
💬 Что вас мотивирует в работе? ❤️ — развитие своих профессиональных скиллов 👍 — преимущественно деньги 🤔 — я просто не хочу умереть с голоду 🌚 — одобрение коллег, поддержка определённого статуса 👾 — я верю, что занимаюсь чем-то полезным и ценным #интерактив
3 68513Loading...
06
📦 Подборка Python-библиотек для сжатия и архивирования файлов 🔸zlib Модуль из стандартной библиотеки. Функция zlib.compress(s), например, позволяет получить сжатую строку. Коэффициент сжатия, то есть показатель того, насколько эффективно алгоритм может уменьшить размер входных данных, у zlib довольно высокий. 🔸LZ4 Библиотека предоставляет Python-интерфейс для алгоритма LZ4. Он отличается высокой скоростью сжатия. С задачами, на которые у Zlib уходит примерно 7.5 секунды, LZ4 может справиться менее чем за секунду. Коэффициент сжатия, правда, может быть ниже, чем у других алгоритмов. 🔸Brotli Эта библиотека была разработана Google. Brotli использует современный вариант алгоритма LZ77, кодирование Хаффмана и контекстное моделирование второго порядка. 🔸Zstandard (zstd) Тоже предлагает высокую скорость сжатия с высоким коэффициентом. У алгоритма также есть специальный режим для малых данных dictionary compression.
3 64826Loading...
07
🤔 Google уволила команду Python-разработчиков В преддверии ежегодной конференции Google I/O компания уволила сотрудников ключевых команд, не только Python, но и также Flutter, Dart и др. Сама Google говорит, что сделала это ради упрощения и повышения эффективности. 🐍 Сотрудники же рассказали чуть больше подробностей о происходящем. Так, по словам одного из них, были уволены люди, которые управляли всеми внутренними процессами, связанными с Python. Как отметили другие комментаторы, годами большую часть работы в Python-команде выполняли менее 10 человек. Python был одним из первых языков, которые Google стала активно использовать. Это был последний главный язык бэкенда, для которого собрали команду. Многие люди в соцсетях уже выразили обеспокоенность увольнением Python-разработчиков. Но, похоже, что Google не избавилась от таковых окончательно: возможно, их просто заменили специалистами из другой страны.
7 36680Loading...
08
🎧 Nava — библиотека звуков для Python Позволяет воспроизводить звуки без зависимостей и ограничений по платформе. Библиотека работает на разных операционных системах, включая Windows, macOS и Linux. Поддерживает воспроизведение различных аудиоформатов, в том числе WAV и MP3. Nava — лёгкая в использовании и может помочь в случаях, когда нужно быстро добавить функциональность воспроизведения звука в программу на Python. 🪅Простейший пример использования библиотеки: from nava import play play("alarm.wav") 🔗 Ссылка на GitHub-репозиторий Nava
4 22067Loading...
09
🤖 Пишем Telegram-ботов с aiogram 3.x Это большой и подробный гайд по разработке Telegram-ботов на Python с использованием фреймворка aiogram 3.x. Подходит начинающим (и содержит при этом некоторые упрощения). Рассказывает о: 🔹Установке aiogram и создании простейшего бота; 🔹Работе с сообщениями и кнопками; 🔹Роутерах (не оборудовании); 🔹Фильтрах и др. 🔗 Ссылка на гайд
4 204143Loading...
10
💬 Какие принципы ООП вы знаете? Их четыре: ▫️наследование; ▫️инкапсуляция; ▫️полиморфизм; ▫️абстракция. 🔹Наследование Наследование позволяет новому классу наследовать атрибуты и методы уже существующего класса. Новый класс называется производным (дочерним). Существующий — базовым (родительским). 🔹Инкапсуляция Этот принцип заключается в ограничении доступа к внутренним методам и переменным класса извне. В Python принцип реализован лишь на уровне соглашений: приватные атрибуты выделяются подчёркиванием — одинарным _ или двойным __. Эти подчёркивания сигнализируют другим программистам о приватности. Однако доступ к ним всё равно можно получить. 🔹Полиморфизм Полиморфизм позволяет использовать одну функцию для разных форм (типов данных). В Python это проявляется, например, когда дочерний класс переопределяет методы родительского класса или когда разные классы имеют методы с одинаковыми именами, но собственной реализацией. 🔹Абстракция Абстракция используется, чтобы скрыть внутренние характеристики функции от пользователей. #вопросы_с_собеседований
4 66287Loading...
11
🤖🖼️ Как работают визуальные трансформеры: магия превращения пикселей в знания Визуальные трансформеры (Vision Transformers, ViTs) — класс моделей глубокого обучения, которые достигли выдающихся результатов в задачах классификации изображений. В основе ViTs лежит архитектура трансформеров, изначально разработанная для обработки естественного языка. В новой статье подробно рассказываем (с картинками), как работают такие модели компьютерного зрения. 🔗 Читать статью 🔗 Зеркало
3 83930Loading...
12
🐍🃏 Python-карточки — небольшое залипалово на вечер Нашли сайт с бесплатным набором карточек по стандартным модулям Python (там есть и платные). Алгоритм простой: ▫️Вводите свою почту; ▫️Вам присылают ссылку на личный профиль (для сохранения результатов); ▫️Каждый день выдаётся набор карточек с вопросами по модулям. Можно выбрать максимум до 20 карточек в день. Всего в наборе 285 карточек; ▫️Пытаетесь ответить на вопрос, а потом проверяете себя. Внимание: карточки на английском языке. 🔗 Ссылка на сайт
4 50151Loading...
13
5️⃣худших особенностей Python? Автор YouTube-канала Indently выпустил новый ролик, в котором перечислил худшие, по его мнению, особенности Python. Это: 😟Неявная конкатенация строк; print("ololo" "alala") # -> ololoalala 😟Блок else для циклов for и while, а также для try/except; 😟import со звёздочкой (*); 😟Изменяемые значения по умолчанию; 😟Shallow copy (поверхностное копирование). 🔗 Ссылка на ролик с подробным объяснением 💬 А вы согласны?
4 56133Loading...
14
6️⃣ любопытных однострочников Python 1️⃣Создание списка из содержимого файла print([line.strip() for line in open("text.txt")]) 2️⃣Получение словаря из списка кортежей и списка с названиями колонок column_names = ['name', 'salary', 'job'] db_rows = [('Alice', 180000, 'data scientist'), ('Bob', 99000, 'mid-level manager'), ('Frank', 87000, 'CEO')] db = [dict(zip(column_names, row)) for row in db_rows] print(db) # -> ''' [{'name': 'Alice', 'salary': 180000, 'job': 'data scientist'}, {'name': 'Bob', 'salary': 99000, 'job': 'mid-level manager'}, {'name': 'Frank', 'salary': 87000, 'job': 'CEO'}] ''' 3️⃣Вычисление факториала from functools import reduce n = 5 print(reduce(lambda x, y: x * y, range(1, n+1))) 4️⃣Алгоритм быстрой сортировки unsorted = [33, 2, 3, 45, 6, 54, 33] quick = lambda l: quick([x for x in l[1:] if x <= l[0]]) + [l[0]] + quick([x for x in l if x > l[0]]) if l else [] print(quick(unsorted)) 5️⃣Сумма чётных чисел в списке nums = [1, 2, 3, 4, 5, 6] sum_even = sum([num for num in nums if num%2 == 0]) print(sum_even) 6️⃣Замена испорченных строк в списке visitors = ['Firefox', 'corrupted', 'Chrome', 'corrupted', 'Safari', 'corrupted', 'Safari', 'corrupted', 'Chrome', 'corrupted', 'Firefox', 'corrupted'] visitors[1::2] = visitors[::2] print(visitors) # -> ''' ['Firefox', 'Firefox', 'Chrome', 'Chrome', 'Safari', 'Safari', 'Safari', 'Safari', 'Chrome', 'Chrome', 'Firefox', 'Firefox'] '''
4 929102Loading...
15
🦥 Ленивые вычисления в Python: что это? Каждая строчка кода, как правило, содержит как минимум одно выражение, которое вычисляется в значение. Если Python откладывает вычисление какого-либо значения до тех пор, пока оно не понадобится, то мы можем назвать это ленивыми вычислениями.  В качестве примера ленивых вычислений можно привести использование range() в цикле: for index in range(1, 1_000_001): print(f"This is iteration {index}") Почему? Дело в том, что объект range не хранит весь миллион чисел, которые может использовать. Вместо этого, цикл for создаёт range_iterator, который генерирует следующее число в последовательности только тогда, когда оно понадобится. 🔗 Более подробно о ленивых вычислениях в Python можно прочесть в новой статье на Real Python
5 07832Loading...
16
🐍 У нас есть еженедельная email-рассылка, посвященная последним открытиям и тенденциям в мире Python. В ней: ● Новые возможности в последних версиях Python ● Работа с базами данных и SQL в Python ● Веб-разработка на Django и Flask ● Машинное обучение и анализ данных с помощью Python ● Автоматизация и работа с API на Python ● Тестирование и отладка кода на Python ● Задачи для новичков с решениями 👉Подписаться👈
5 0564Loading...
17
Media files
5 0972Loading...
18
Media files
5 3242Loading...
19
✍️ Небольшая шпаргалка по Flask Одностраничная шпаргалка охватывает основные темы: 🔹Маршрутизация; 🔹Методы запросов; 🔹Конфигурация; 🔹Шаблоны и ответы JSON; 🔹Перенаправления; 🔹Куки и др.
5 41375Loading...
20
⛓️ Программирование и блокчейн: что нужно знать новичку? ❗Если ты не смог купить Биткоин в 2009, но интересна эта область, не стоит переживать. Ты всё ещё сможешь попробовать себя в качестве блокчейн-разработчика и создать свою крипту😉 ❗Сейчас блокчейн становится всё более популярен и уже применяется не только для реализации криптовалюты (а также например в играх) ‼️ Чтобы не потеряться в обилии информации, предлагаю к прочтению небольшую статью об разработке блокчейн-приложений, в ней ты узнаешь об основных аспектах применяемых для использования данной технологии
4 86116Loading...
21
🐍🤔 «Задумчивый» код: временная сложность операций со структурами данных в Python Вы когда-нибудь задумывались, почему некоторые операции в Python выполняются мгновенно, а другие заставляют ваш код «задумчиво» работать? В новой статье разбираемся во временной сложности и узнаём, как писать быстрый и эффективный код. 🔗 Читать статью 🔗 Зеркало
13 737142Loading...
22
GitVerse – еще круче, быстрее и удобнее На онлайн-презентации «GitVerse: открой вселенную кода» СберТех представил новую функциональность платформы, которая поможет ускорить и упростить разработку. Рассказываем про новые фичи GitVerse: ✔️ CI/CD-инструменты Помогут автоматизировать сборку исходного кода и процессы поставки. А еще можно перенести свои проекты с Git-репозиториев в один клик. ✔️ Новые функции персонального AI-ассистента* GigaCode Теперь GigaCode умеет решать связанные с кодом задачи в окне чата прямо в среде разработки. А в репозитории в GitVerse можно получить объяснение, что делает конкретная часть кода, и советы по его улучшению. ✔️ Функциональность для организаций Отличная новость – разрабатывать на GitVerse теперь могут не только индивидуальные разработчики, но и малые и средние предприятия. Регистрируйтесь и воспользуйтесь новыми возможностями GitVerse! *AI, artificial intelligence — искусственный интеллект
3 4653Loading...
23
🤡 Ловушка функции strip() Скорее всего, вы хороши знакомы с функциями strip(), lstrip() и rstrip() в Python. Они используются для удаления пробелов или других заданных символов из строк. В основном, это выглядит так: " Andrew Wegner ".lower().strip() # -> 'andrew wegner' " Andrew Wegner ".lower().lstrip() # -> 'andrew wegner ' " Andrew Wegner ".lower().rstrip() # -> ' andrew wegner' Но каким будет вывод здесь? "Andrew Wegner".lower().rstrip(" wegner") Если вы ожидали 'andrew', то вы не правы. Верный вывод — 'and' ❓Почему? Дело в том, что функции работают со списком символов, а не со строками. То есть они удаляют из начальной строки все символы, которые вы передали функции. 📎О том, чем пользоваться в Python для решения задачи выше, читайте в статье
4 87529Loading...
24
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом. Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций. Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах. 👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
4 9474Loading...
25
💬 Какой из способов изучения Python показался вам наиболее эффективным? ❤️ — прохождение бесплатных курсов 👍 — прохождение платных курсов (с ментором и обратной связью) 🥰 — чтение книг 🔥 — создание пет-проектов 👏 — не могу выделить что-то одно #интерактив
4 7922Loading...
26
🧑‍💻 Новый #дайджест по Python 🐍 7 simple examples using Django GeneratedField В Django 5.0 появился класс GeneratedField, позволяющий создавать поля моделей, значения которых генерируются и вычисляются на уровне базы данных. В статье приводится 7 примеров использования этой функции. 🐍 Best Python Security Practices for Web Developers В статье перечисляется 5 практик, которые помогут сделать ваши приложения безопаснее. 🐍 The State of Python in 2024 Это запись выступления Майкла Кеннеди, основателя Talk Python Training. Он рассказывать о трендах в Python, о том, как Flask и Django адаптируются к современным условиям, а также об ускорении и изменениях в языке. 🐍 Write Unit Tests for Your Python Code With ChatGPT Статья на Real Python рассказывает, как использовать ChatGPT для создания юнит-тестов с помощью doctest, unittest и pytest. 🐍 Создаём свой диалект змеиного, или DSL на Python Статья на «Хабре» рассказывает о создании диалекта, предназначенного для определённой предметной области.
4 80942Loading...
27
📊 Лучшие примеры диаграмм на Python На странице собраны различные способы визуализации данных с помощью Matplotlib и других инструментов. Среди примеров: ▫️Диаграмма рассеяния; ▫️Фоновая картограмма; ▫️Двойная тепловая карта; ▫️Упорядоченная и зеркальная столбчатая диаграмма; ▫️Комбинация скрипичной диаграммы и ящика с усами. 🔗 Ссылка на страницу
4 88783Loading...
28
🐍 15-минутный гайд по ООП в Python В этой обзорной статье собраны почти все основные темы объектно-ориентированного программирования (ООП) в Python, включая: 🔸Приватность свойств. 🔸Области видимости переменных. 🔸Аннотация типов. 🔸@staticmethod, @classmethod, @property. 🔸Наследование и множественное наследование. 🔸Полиморфизм. 🔸Абстрактные классы. 🔸Дескрипторы. 🔸Использование __slots__. 🔸Принципы композиции и наследования. 🔗 Ссылка на гайд
5 191172Loading...
29
🔍💼 Исследование рынка: 8 наиболее востребованных языков программирования в 2024 году Результаты исследования рынка IT-вакансий, проведенного DevJobsScanner. Были проанализированы 14 миллионов объявлений и выявлены 8 наиболее востребованных языков программирования. Читать статью #почитать
4 6124Loading...
30
*️⃣Почему умножение списков в Python такое неинтуитивное Есть следующий код: a = [[]] * 4 a[0].append("seriously?") print(a) Попробуйте, не глядя в ответ, сказать, что он выведет. Ответ: [['seriously?'], ['seriously?'], ['seriously?'], ['seriously?']] Если не угадали, не переживайте: вы не один такой. Дело здесь в следующем. ⏩При работе с последовательностями (списками, строками) оператор * в Python просто повторяет элементы объекта нужное количество раз. Например, код 'a' * 3 выведет ‘aaa’. Аналогичным образом, [[]] * 4 выведет [[], [], [], []]. В Python всё является объектами, и доступ к каждому объекту осуществляется по ссылке. Так, в [[]] внутренний список является ссылкой на объект пустого списка. Оператор * просто копирует эту ссылку четыре раза, в результате получается [[], [], [], []]. Все эти повторяющиеся внутренние списки являются ссылками на один и тот же изначальный пустой список. Можно проверить это через id: print([id(x) for x in a]) Поэтому неудивительно, что изменение первого элемента в a влечёт за собой изменение всех остальных элементов.
5 37633Loading...
31
*️⃣Почему умножение списков в Python такое неинтуитивное Есть следующий код: a = [[]] * 4 a[0].append("seriously?") print(a) Попробуйте, не глядя в ответ, сказать, что он выведет. Ответ: [['seriously?'], ['seriously?'], ['seriously?'], ['seriously?']]
10Loading...
32
Господа, наш случай👆 #memes
5 03633Loading...
33
Хардкорный курс по математике для тех, кто правда любит математику! Начать с вводных занятий можно здесь, ответив всего на 4 вопроса – https://proglib.io/w/8f9d3a94 Что вас ждет: – Вводный урок от CPO курса – Лекции с преподавателями ВМК МГУ по темам: теория множеств, непрерывность функции, основные формулы комбинаторики, матрицы и операции над ними, градиентный спуск – Практические задания для закрепления материала и ссылки на дополнительные материалы. ⚡️ Переходите и начинайте учиться уже сегодня – https://proglib.io/w/8f9d3a94
4 8869Loading...
34
📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих» Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий! 🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE 🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы 🐍 Часть 3: Типы данных: преобразование и базовые операции 🐍 Часть 4: Методы работы со строками 🐍 Часть 5: Методы работы со списками и списковыми включениями 🐍 Часть 6: Методы работы со словарями и генераторами словарей 🐍 Часть 7: Методы работы с кортежами 🐍 Часть 8: Методы работы со множествами 🐍 Часть 9: Особенности цикла for 🐍 Часть 10: Условный цикл while 🐍 Часть 11: Функции с позиционными и именованными аргументами 🐍 Часть 12: Анонимные функции 🐍 Часть 13: Рекурсивные функции 🐍 Часть 14: Функции высшего порядка, замыкания и декораторы 🐍 Часть 15: Методы работы с файлами и файловой системой 🐍 Часть 16: Регулярные выражения 🐍 Часть 17: Основы скрапинга и парсинга 🐍 Часть 18: Основы ООП – инкапсуляция и наследование 🐍 Часть 19: Основы ООП – абстракция и полиморфизм 🐍 Часть 20: Графический интерфейс на Tkinter 🐍 Часть 21: Основы разработки игр на Pygame 🐍 Часть 22: Основы работы с SQLite 🐍 Часть 23: Основы веб-разработки на Flask 🐍 Часть 24: Основы работы с NumPy 🐍 Часть 25: Основы анализа данных с Pandas
5 128255Loading...
35
🟰Математические основы генеративных нейронных сетей: что нужно знать для их изучения ❔Генеративный ИИ — это тип искусственного интеллекта, который после обучения на огромных массивах существующих данных способен создавать новый контент (текст, программный код, изображения, аудио, видео). 🪅Первыми примитивными примерами генеративного ИИ можно считать статистические модели, которые могли генерировать новые последовательности на основе заданных входных данных. Одна из таких моделей была использована для предсказания итогов президентских выборов в США в 1952 году. ↗️ Стремительное развитие генеративного ИИ началось в 2014 году, когда Ян Гудфеллоу и его коллеги представили генеративную состязательную сеть (GAN). Параллельно с этим, вариационные автокодировщики (VAE) и рекуррентные нейронные сети (RNN) тоже продемонстрировали впечатляющие способности к генерации нового контента. С тех пор генеративный ИИ развивается с головокружительной скоростью. В новой статье рассказываем, какие разделы математики нужно знать для разработки современных генеративных моделей. 🔗 Читать статью 🔗 Зеркало
4 79232Loading...
36
🚀 Как быстро Python может спарсить миллиард строк данных? Парень сделал ролик, в котором сравнил лучшие методики Python-разработчиков для решения One Billion Row Challenge. Участникам челленджа нужно написать программу, которая читает текстовый файл с миллиардом строк, вычисляет минимальное, среднее и максимальное значения температуры для каждой метеостанции и выводит результаты. 🐍 В ролике автор начал с разбора простейшего подхода к решению задачи, который требует более 9 минут. Переход с CPython на PyPy сократил время до приблизительно 5 минут. Далее парень разобрал самое быстрое решение на чистом Python (с использованием только встроенных библиотек), которое занимает 9.9 секунды. Помимо этого, автор показал решения с привлечением сторонних библиотек: Polars и DuckDB (и они были хороши). 🔗 Смотреть ролик
5 095115Loading...
Photo unavailableShow in Telegram
🐍💪 ТОП-5 вопросов повышенной сложности на собеседовании по Python Метаклассы, дескрипторы, модификаторы доступа — звучит сложно? В новой статье разбираем 5 вопросов, которые часто задают на собеседованиях по Python. 🔗 Читать статью 🔗 Зеркало
Show all...
😁 7
👩🏻‍💻📓 Гайд по последовательностям в Python Последовательность — это структура данных, которая содержит элементы, организованные в определённом порядке. Доступ к этим элементам можно получить через обращение по индексу. В Python основные типы последовательностей — это списки, кортежи и строки. Новое руководство на Real Python рассматривает: • Характеристики последовательностей; • Общие операции над последовательностями; • Специальные методы последовательностей; • Классы Sequence и MutableSequence; • Создание пользовательских изменяемых и неизменяемых последовательностей. 🔗 Читать статью
Show all...
👍 8 2
Что делает yield в Python? Это оператор, который используется в генераторных функциях вместо return. Обычная функция завершает работу если встретилось выражение return, или закончился код функции, или возникло исключение. После выполнения функции, управление возвращается. Если мы имеем дело с генераторной функцией, то каждый раз, когда внутри неё встречается yield, выполнение приостанавливается и возвращает значение. При следующем запросе, генератор начинает работать с того же места, где он завершил работу в прошлый раз. Так как оператор yield не завершает работу генератора, он может использоваться несколько раз. 📎Пример генераторной функции с yield:
def simple_generator():
    yield "Hello"
    yield "World"

gen = simple_generator()
print(next(gen))  # Выводит "Hello"
print(next(gen))  # Выводит "World"
#вопросы_с_собеседований
Show all...
👍 26 4🤔 2🥱 1
🐍 Как скрыть чувствительные данные в отчётах об ошибках в Django В Django есть встроенная функция отправки сообщений об ошибках приложения небольшому списку администраторов. Нужно просто настроить параметр ADMINS и подготовить приложение к отправке электронных писем. Все ошибки (со статусом 500 и выше) будут вызывать отправку нового сообщения со всеми деталями. Это удобно, но такие сообщения могут содержать конфиденциальную информацию (пароли, номера кредитных карт, личные данные и т.д.). Статья в блоге Гонсало Валерио посвящена методам фильтрации таких чувствительных данных с помощью декораторов @sensitive_variables() и @sensitive_post_parameters(). 🔗 Читать статью
Show all...
👏 7
00:06
Video unavailableShow in Telegram
💬 Что вас мотивирует в работе? ❤️ — развитие своих профессиональных скиллов 👍 — преимущественно деньги 🤔 — я просто не хочу умереть с голоду 🌚 — одобрение коллег, поддержка определённого статуса 👾 — я верю, что занимаюсь чем-то полезным и ценным #интерактив
Show all...
63👍 59👾 33🤔 21😁 3🌚 1
Photo unavailableShow in Telegram
📦 Подборка Python-библиотек для сжатия и архивирования файлов 🔸zlib Модуль из стандартной библиотеки. Функция zlib.compress(s), например, позволяет получить сжатую строку. Коэффициент сжатия, то есть показатель того, насколько эффективно алгоритм может уменьшить размер входных данных, у zlib довольно высокий. 🔸LZ4 Библиотека предоставляет Python-интерфейс для алгоритма LZ4. Он отличается высокой скоростью сжатия. С задачами, на которые у Zlib уходит примерно 7.5 секунды, LZ4 может справиться менее чем за секунду. Коэффициент сжатия, правда, может быть ниже, чем у других алгоритмов. 🔸Brotli Эта библиотека была разработана Google. Brotli использует современный вариант алгоритма LZ77, кодирование Хаффмана и контекстное моделирование второго порядка. 🔸Zstandard (zstd) Тоже предлагает высокую скорость сжатия с высоким коэффициентом. У алгоритма также есть специальный режим для малых данных dictionary compression.
Show all...
👍 9 1
Photo unavailableShow in Telegram
🤔 Google уволила команду Python-разработчиков В преддверии ежегодной конференции Google I/O компания уволила сотрудников ключевых команд, не только Python, но и также Flutter, Dart и др. Сама Google говорит, что сделала это ради упрощения и повышения эффективности. 🐍 Сотрудники же рассказали чуть больше подробностей о происходящем. Так, по словам одного из них, были уволены люди, которые управляли всеми внутренними процессами, связанными с Python. Как отметили другие комментаторы, годами большую часть работы в Python-команде выполняли менее 10 человек.
Python был одним из первых языков, которые Google стала активно использовать. Это был последний главный язык бэкенда, для которого собрали команду.
Многие люди в соцсетях уже выразили обеспокоенность увольнением Python-разработчиков. Но, похоже, что Google не избавилась от таковых окончательно: возможно, их просто заменили специалистами из другой страны.
Show all...
🤔 24😁 10🌚 3👍 2
🎧 Nava — библиотека звуков для Python Позволяет воспроизводить звуки без зависимостей и ограничений по платформе. Библиотека работает на разных операционных системах, включая Windows, macOS и Linux. Поддерживает воспроизведение различных аудиоформатов, в том числе WAV и MP3. Nava — лёгкая в использовании и может помочь в случаях, когда нужно быстро добавить функциональность воспроизведения звука в программу на Python. 🪅Простейший пример использования библиотеки:
from nava import play
play("alarm.wav")
🔗 Ссылка на GitHub-репозиторий Nava
Show all...
🎉 11 5👍 1
🤖 Пишем Telegram-ботов с aiogram 3.x Это большой и подробный гайд по разработке Telegram-ботов на Python с использованием фреймворка aiogram 3.x. Подходит начинающим (и содержит при этом некоторые упрощения). Рассказывает о: 🔹Установке aiogram и создании простейшего бота; 🔹Работе с сообщениями и кнопками; 🔹Роутерах (не оборудовании); 🔹Фильтрах и др. 🔗 Ссылка на гайд
Show all...
4👍 3
💬 Какие принципы ООП вы знаете? Их четыре: ▫️наследование; ▫️инкапсуляция; ▫️полиморфизм; ▫️абстракция. 🔹Наследование Наследование позволяет новому классу наследовать атрибуты и методы уже существующего класса. Новый класс называется производным (дочерним). Существующий — базовым (родительским). 🔹Инкапсуляция Этот принцип заключается в ограничении доступа к внутренним методам и переменным класса извне. В Python принцип реализован лишь на уровне соглашений: приватные атрибуты выделяются подчёркиванием — одинарным _ или двойным __. Эти подчёркивания сигнализируют другим программистам о приватности. Однако доступ к ним всё равно можно получить. 🔹Полиморфизм Полиморфизм позволяет использовать одну функцию для разных форм (типов данных). В Python это проявляется, например, когда дочерний класс переопределяет методы родительского класса или когда разные классы имеют методы с одинаковыми именами, но собственной реализацией. 🔹Абстракция Абстракция используется, чтобы скрыть внутренние характеристики функции от пользователей. #вопросы_с_собеседований
Show all...
14🥰 6😁 5👍 2🔥 2🤔 1