Библиотека питониста | Python, Django, Flask
40.5K subscribers
2.79K photos
75 videos
51 files
4.37K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Курс по ML: https://cl

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
加入频道
Хардкорный курс по математике для тех, кто правда любит математику!

Начать с вводных занятий можно здесь, ответив всего на 4 вопроса – https://proglib.io/w/8f9d3a94

Что вас ждет:

– Вводный урок от CPO курса

– Лекции с преподавателями ВМК МГУ по темам: теория множеств, непрерывность функции, основные формулы комбинаторики, матрицы и операции над ними, градиентный спуск

– Практические задания для закрепления материала и ссылки на дополнительные материалы.

⚡️ Переходите и начинайте учиться уже сегодня – https://proglib.io/w/8f9d3a94
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3👍31
Господа, наш случай👆

#memes
😁55👍4🔥1
*️⃣Почему умножение списков в 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 влечёт за собой изменение всех остальных элементов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍498❤‍🔥3💯3🔥2
🔍💼 Исследование рынка: 8 наиболее востребованных языков программирования в 2024 году

Результаты исследования рынка IT-вакансий, проведенного DevJobsScanner. Были проанализированы 14 миллионов объявлений и выявлены 8 наиболее востребованных языков программирования.

Читать статью

#почитать
👍8🤔1🌚1
🐍 15-минутный гайд по ООП в Python

В этой обзорной статье собраны почти все основные темы объектно-ориентированного программирования (ООП) в Python, включая:

🔸Приватность свойств.
🔸Области видимости переменных.
🔸Аннотация типов.
🔸@staticmethod, @classmethod, @property.
🔸Наследование и множественное наследование.
🔸Полиморфизм.
🔸Абстрактные классы.
🔸Дескрипторы.
🔸Использование __slots__.
🔸Принципы композиции и наследования.

🔗 Ссылка на гайд
👍172
📊 Лучшие примеры диаграмм на Python

На странице собраны различные способы визуализации данных с помощью Matplotlib и других инструментов. Среди примеров:

▫️Диаграмма рассеяния;
▫️Фоновая картограмма;
▫️Двойная тепловая карта;
▫️Упорядоченная и зеркальная столбчатая диаграмма;
▫️Комбинация скрипичной диаграммы и ящика с усами.

🔗 Ссылка на страницу
13👍7
🧑‍💻 Новый #дайджест по 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
Статья на «Хабре» рассказывает о создании диалекта, предназначенного для определённой предметной области.
👍9
This media is not supported in your browser
VIEW IN TELEGRAM
💬 Какой из способов изучения Python показался вам наиболее эффективным?

❤️ — прохождение бесплатных курсов
👍 — прохождение платных курсов (с ментором и обратной связью)
🥰 — чтение книг
🔥 — создание пет-проектов
👏 — не могу выделить что-то одно

#интерактив
👏95🔥60🥰3228👍23🤔3
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
1👍1
🤡 Ловушка функции 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 для решения задачи выше, читайте в статье
Please open Telegram to view this post
VIEW IN TELEGRAM
👍293🥱1
🐍🤔 «Задумчивый» код: временная сложность операций со структурами данных в Python

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

🔗 Читать статью
🔗 Зеркало
👍16😁2
⛓️ Программирование и блокчейн: что нужно знать новичку?

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

Сейчас блокчейн становится всё более популярен и уже применяется не только для реализации криптовалюты (а также например в играх)

‼️ Чтобы не потеряться в обилии информации, предлагаю к прочтению небольшую статью об разработке блокчейн-приложений, в ней ты узнаешь об основных аспектах применяемых для использования данной технологии
👍8
flask_cheatsheet.pdf
67.3 KB
✍️ Небольшая шпаргалка по Flask

Одностраничная шпаргалка охватывает основные темы:

🔹Маршрутизация;
🔹Методы запросов;
🔹Конфигурация;
🔹Шаблоны и ответы JSON;
🔹Перенаправления;
🔹Куки и др.
👍9🔥4❤‍🔥2
🐍 У нас есть еженедельная email-рассылка, посвященная последним открытиям и тенденциям в мире Python.

В ней:
● Новые возможности в последних версиях Python
● Работа с базами данных и SQL в Python
● Веб-разработка на Django и Flask
● Машинное обучение и анализ данных с помощью Python
● Автоматизация и работа с API на Python
● Тестирование и отладка кода на Python
● Задачи для новичков с решениями

👉Подписаться👈
🦥 Ленивые вычисления в Python: что это?

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

В качестве примера ленивых вычислений можно привести использование range() в цикле:

for index in range(1, 1_000_001):
print(f"This is iteration {index}")


Почему? Дело в том, что объект range не хранит весь миллион чисел, которые может использовать. Вместо этого, цикл for создаёт range_iterator, который генерирует следующее число в последовательности только тогда, когда оно понадобится.

🔗 Более подробно о ленивых вычислениях в Python можно прочесть в новой статье на Real Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24
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']
'''
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥71
5️⃣худших особенностей Python?

Автор YouTube-канала Indently выпустил новый ролик, в котором перечислил худшие, по его мнению, особенности Python. Это:

😟Неявная конкатенация строк;
print("ololo" "alala") # -> ololoalala


😟Блок else для циклов for и while, а также для try/except;

😟import со звёздочкой (*);

😟Изменяемые значения по умолчанию;

😟Shallow copy (поверхностное копирование).

🔗 Ссылка на ролик с подробным объяснением

💬 А вы согласны?
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱20👍93🤔3
🐍🃏 Python-карточки — небольшое залипалово на вечер

Нашли сайт с бесплатным набором карточек по стандартным модулям Python (там есть и платные). Алгоритм простой:

▫️Вводите свою почту;
▫️Вам присылают ссылку на личный профиль (для сохранения результатов);
▫️Каждый день выдаётся набор карточек с вопросами по модулям. Можно выбрать максимум до 20 карточек в день. Всего в наборе 285 карточек;
▫️Пытаетесь ответить на вопрос, а потом проверяете себя.

Внимание: карточки на английском языке.

🔗 Ссылка на сайт
👍135🥰4
🤖🖼️ Как работают визуальные трансформеры: магия превращения пикселей в знания

Визуальные трансформеры (Vision Transformers, ViTs) — класс моделей глубокого обучения, которые достигли выдающихся результатов в задачах классификации изображений. В основе ViTs лежит архитектура трансформеров, изначально разработанная для обработки естественного языка.

В новой статье подробно рассказываем (с картинками), как работают такие модели компьютерного зрения.

🔗 Читать статью
🔗 Зеркало
❤‍🔥5👍3