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

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

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

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
Какой алгоритм сортировки используют функции sort() и sorted() в Python?

Python использует алгоритм TimSort. В худшем случае его сложность составляет O(N logN). Это гибридный алгоритм, сочетающий сортировку вставками и сортировку слиянием.

👩‍💻 Вот как он работает вкратце:

▪️Возьмём в качестве примера массив arr = {4, 2, 8, 6, 1, 5, 9, 3, 7}. Разделим его на подпоследовательности, называемые runs.
▪️Каждый run сортируется с помощью сортировки вставками.
Отсортированные runs: [2, 4], [6, 8], [1, 5, 9], [3, 7]
Обновлённый массив: [2, 4, 6, 8, 1, 5, 9, 3, 7]
▪️Отсортированные подпоследовательности сливаются в единый массив.
Финальный массив: [1, 2, 3, 4, 5, 6, 7, 8, 9].

#вопросы_с_собеседований
👍139🤔1
🔑 PyPI ввёл обязательную двухфакторную аутентификацию (2FA) для всех пользователей

Новые правила вступили в силу 1 января 2024 года. Всем, кто ещё не активировал 2FA, нужно будет это сделать, прежде чем работать и загружать файлы на PyPI. После включения можно будет выполнять действия, связанные с управлением проектами, и генерировать API-токены.

Администрация ресурса объяснила, что применение 2FA позволяет улучшить защиту процесса разработки и обезопасить проекты от внесения вредоносных изменений.
👍152
🧪 Библиотека SQLAlchemy для работы с реляционными базами данных в Python

В конце декабря вышла версия SQLAlchemy 2.0.24. Для установки используйте команду pip install SQLAlchemy==2.0.24

👩‍💻 SQLAlchemy позволяет работать с базой данных с помощью объектно-ориентированного кода, не используя SQL-запросы. Впрочем, если последнее необходимо, то есть возможности и для работы с чистыми SQL-запросами. Кроме того, при использовании библиотеки можно без проблем мигрировать с одной базы данных на другую. Здесь можно найти руководство по SQLAlchemy.

🔗 Страница библиотеки на PyPI
👍15🥰4
💬 Какой фреймворк вы используете в работе чаще — Django, Flask или FastAPI?

❤️ — Django
👍 — Flask
🔥 — FastAPI
🤔 — У меня другой вариант

#интерактив
181🔥122👍61🤔24🙏2🤩1💯1
-35% на курс основы программирования на Python

🎄 Новый год начинается с подарков, а хороший подарок для себя — новые знания со скидкой 35%!

🌟«Основы программирования на Python» — 12 990 ₽ (вместо 19 990 ₽)

Освоите знания для старта карьеры и научитесь программировать на одном из самых востребованных языков программирвоания.

Вас ждет бессрочный доступ ко всем материалам курса и развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.

🔥 Переходите и активируйте вводные занятия курсаhttps://proglib.io/w/24959bdb
👍41
🐍Как работает интерпретатор Python

Видео от автора YouTube-канала luchanos, в котором он понятным языком объясняет, как же устроен интерпретатор Python. Станет ясно, почему в его составе всё-таки есть компилятор (с нюансом).

🧩Смотреть видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤔1
🐍 Идеи проектов на Python

Сделали для вас подборку туториалов по проектам, которые вполне могут стать вашими пет-проектами или помочь освоить язык.

🖥️ Утилита для записи экрана
Подойдёт для новичков. В статье на GeeksforGeeks подробно объясняется каждый кусок небольшого кода для проекта.
🤖 Telegram-бот
Автор рассказывает, как с помощью Python и Aiogram написать полноценного бота с админкой, оплатой, базой данных, реферальной программой и API OpenAI.
👾 Игра Pong
Создание игры с простейшим визуальным оформлением. Используется библиотека Turtle.
📹 Инструмент для скачивания видео с YouTube на Django
Здесь тоже нет ничего сложного. Применяется модуль pytube.
🧩 «Угадай загаданное слово»
Реализация игры в слова с использованием эмбеддингов.
🔗 Инструмент для сокращения ссылок на FastAPI
Гайд для тех, кто освоил базу Python, и хочет научиться большему.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥2🥱2
This media is not supported in your browser
VIEW IN TELEGRAM
🥺На видео попал момент, когда в твою жизнь внезапно вошёл Python

#memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁87😍6🔥4🥱1🌚1
🪄 Магические методы в Python

Это специальные методы, начинающиеся и заканчивающиеся двойными подчёркиваниями. К наиболее известным относятся:

init
Используется для инициализации новых объектов.
str
Определяeт строковое представление объекта.
call
Позволяет объекту класса вести себя как функция.
len
Определяет поведение функции len() для пользовательских объектов.

Вот пример использования str:
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def __str__(self):
        return f"I'm {self.name}, and I'm {self.age} years old."
jane = Person("Jane Doe", 25)
str(jane) # -> "I'm Jane Doe, and I'm 25 years old".

✍️ В статье рассматриваются и другие магические методы, а также примеры их применения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
🐍 У нас есть еженедельная email-рассылка, посвященная последним открытиям и тенденциям в мире Python.

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

👉Подписаться👈
🔥2
🧑‍💻 Как написать декоратор на Python (и зачем)

Декоратор — это функция, которая позволяет обернуть другую функцию для расширения её функциональности и переиспользовать код.

➡️В качестве примера рассмотрим декоратор time_this, возвращающий время, за которое отработала функция.
import time 

def time_this(func):
def _wrapper(*args, **kwargs):
# получаем стартовое время
start = time.time()

# вызываем функцию, переданную в декоратор
out = func(*args, **kwargs)

# выводим время, которое заняла работа этой функции
print(f"time it took: {time.time() - start:.3f}")

# возвращаем результат функции
return out

# декоратор возвращает метод-обёртку
return _wrapper

@time_this
def do_stuff():
time.sleep(5)
return "Success!"

print(do_stuff())
# -> time it took: 5.003
# -> Success!


🔗 Прочесть оригинальный и более подробный пост про декораторы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🤔52
🤔 Что делает функция zip в Python?

Функция zip используется для создания итератора, который агрегирует элементы из двух или более итерируемых объектов (например, списков, кортежей). Возвращается итератор кортежей, где i-й кортеж содержит i-й элемент из каждой из входных последовательностей. zip останавливается, как только заканчивается самая короткая входная последовательность.

✔️Пример:
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']

# Используем zip для объединения списков
zipped = zip(list1, list2)

# Преобразуем в список кортежей
zipped_list = list(zipped)

print(zipped_list) # -> [(1, 'a'), (2, 'b'), (3, 'c')]

#вопросы_с_собеседований
👍27
beginners_python_cheat_sheet_pcc_all.pdf
741 KB
✍️🐍 Большая обновлённая шпаргалка по Python для начинающих

Сделана на базе книги Python Crash Course, Third Edition. На 28 страницах шпаргалки охвачены все основные темы, касающиеся языка:

▫️типы данных,
▫️классы,
▫️обработка ошибок,
▫️основные методы для работы с разными типами данных,
▫️тестирование кода,
▫️работа с Pygame, Matplotlib, Plotly,
▫️основы работы с Django,
▫️введение в Git.

🔗Ссылка на сайт книги
👍12🔥8
🧑‍💻 Особенности работы в айти: результаты опроса подписчиков

В декабре мы провели среди вас опрос, изучили результаты и сделали аналитическую статью на vc.ru.

Вот некоторые выводы:

🧔‍♂️ В основном наша аудитория состоит из мужчин — 92,1% опрошенных. Женщин, соответственно, всего 7,9%.
🐍 В ТОП-10 специальностей входят питонисты — их 12,4%. Дата-инженерами или дата-сайентистами себя назвали 3.7% респондентов.
👨‍🎓 25% аудитории — самоучки, у которых нет профильного образования, и они не заканчивали никаких платных курсов.
💲 У разработчиков с опытом менее года преобладают зарплаты до 90 000 рублей (88%). Если опыта 1-3 года, то доля получающих 150 000+ увеличивается до 53,6%.
💰 Опытные и образованные Python-разработчики (15,44%) также входят в шестёрку самых высокооплачиваемых специалистов.

🔗 Полный отчёт можно прочесть по этой ссылке

💬 Пишите, какие ещё подобные материалы вам было бы интересно почитать
14👍5😁3
Media is too big
VIEW IN TELEGRAM
✉️ Создаём приложение для обмена мгновенными сообщениями на Django

В гайде описана простая реализация мессенджера без использования тяжёлых зависимостей (например, Redis). Автор постарался показать самый лёгкий способ добавить обработку событий в реальном времени в Django. Шаблон для визуального оформления в инструкции также есть.

🔗 Текстовый гайд
📹 Пошаговая видеоинструкция
👍17🔥31
🎉 Python и неопытные программисты: наши лучшие статьи за 2023 год

За 2023 год «Библиотека программиста» опубликовала 227 статей, и Питон второй год подряд в ТОПе.

Вот 5 самых популярных материалов (сохраняй, если не читал):

🐛 9 признаков неопытного программиста
😢 Обратная сторона медали: 9 причин, почему тебе не нужно идти в IT
🚩 Кому не подходит работа в IT: 6 красных флагов
🐍📚 ТОП-15 книг по Python для начинающих и опытных разработчиков в 2023 году
🐍 Самоучитель по Python для начинающих. Часть 11: Функции с позиционными и именованными аргументами

Ещё больше итогов года, а также ссылки на «Самоучитель по Python для начинающих» здесь 👈
🔥10👍3🤔32
💬 Представьте, что к вам пришёл знакомый, который решил стать айтишником. Он пока не знает, чем конкретно хотел бы заниматься, но в курсе, что вы — Python-разработчик. Стали бы вы советовать ему изучить Python?

❤️ — да
🤔 — нет
👍 — не знаю

👇 Аргументируйте в комментариях

#интерактив
141🤔56👍38😁7
💻 Насколько хорошо GPT и другие LLM разбираются в коде?

Исследователи создали бенчмарк CRUXEval, который позволяет протестировать большие языковые модели на 800 Python-функциях. В тест включены две задачи: предсказание входа и предсказание выхода.

Для бенчмарка исследователи сначала сгенерировали набор функций и получили выходы для них. Затем в наборе оставили только небольшие задачи, решение которых для опытного программиста должно занять пару минут. На них протестировали основные LLM.

✔️Так, лучшей оказалась gpt-4-0613. Она справлялась с предсказанием входа в 70% случаев и с предсказанием выхода в 69% случаев. Также выяснилось, что есть задачи, для которых модель неспособна дать верный ответ (пример на картинке 👆).

Можно самостоятельно поэкспериментировать с бенчмарком и LLM. Инструкция есть в репозитории.

👩‍💻 Репозиторий на GitHub
🔗 Демоверсия
👍11😁3
🐍Группы исключений в Python

Группы исключений появились в языке, начиная с Python 3.11. Для них используется специальный новый оператор except*. Символ звёздочки указывает на то, что except может обработать несколько исключений.

Зачем?
В более старых версиях Python интерпретатор мог распространять только одно исключение за раз. Цепочки исключений, представленные в PEP 3134, объединяли лишь связанные исключения, но возникали ситуации, когда было нужно распространить одновременно несколько несвязанных исключений. Например, функция из стандартной библиотеки socket.create_connection может пытаться подключиться к нескольким разным адресам. Если все попыки провалятся, стоило бы сообщить об этом пользователю.

▶️Иными словами, обычный except позволяет сообщать только о первой обнаруженной ошибке. А except со звёздочкой — сразу о нескольких ошибках.

❗️Нельзя смешивать операторы except и except* в одном и том же блоке try. Операторы break, continue и return не могут использоваться в предложении except*.

Пример кода:


try:
raise ExceptionGroup('Example ExceptionGroup', (
TypeError('Example TypeError'),
ValueError('Example ValueError'),
KeyError('Example KeyError'),
AttributeError('Example AttributeError')
))
except* TypeError:
...

except* ValueError as e:
...

except* (KeyError, AttributeError) as e:
...


🔗Прочесть подробнее можно тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26
🚀 Ускоряем работу Python с Numba

Numba — это JIT-компилятор, способный повысить производительность путём трансляции кода на Python в машинный код прямо во время работы программы. Так, Numba анализирует функцию, определяет типы данных и затем компилирует её в машинный код.


✔️ Пример:
@jit(nopython=True)
def sum_array(arr):
result = 0
for i in arr:
result += i
return result

В статье дана простая инструкция, как начать работу с этим инструментом. Есть мнение, что Numba выводит скорость Python примерно на уровень Julia.
👍21