Библиотека питониста | Python, Django, Flask
40.3K subscribers
2.8K photos
78 videos
51 files
4.39K links
Все самое полезное для питониста в одном канале.

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

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

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
🐍Выражения-генераторы в Python

Внешне похожи на List comprehension, который позволяет создавать списки. Однако выражение-генератор возвращает итератор, что более эффективно по памяти. Это значит, что элементы коллекции вызываются по очереди вместо создания полной коллекции сразу.

genexpr = (x**2 for x in range(1000))
print(genexpr) # -> <generator object <genexpr> at 0x784874692030>
print(next(genexpr)) # -> 0
print(next(genexpr)) # -> 1
for num in genexpr:
print(num)


В примере выше по запросу вычисляются квадраты чисел от 0 до 999. После вызова функции next() дважды цикл for продолжит выводить оставшиеся квадраты чисел, начиная с 4 (2^2). genexpr сохраняет своё состояние между запросами.

#код
👍20
Forwarded from Библиотека программиста | программирование, кодинг, разработка
✍️ Почему отсутствие технической документации убьёт ваш проект?

Читатель «Библиотеки программиста» объясняет, почему техническая документация важна, а её наличие — обязательная составляющая успеха проекта. Не верите? 5 (почти) реальных историй, представленных в статье, вас убедят!

🔗 Читать статью
🔗 Зеркало
👍15
Новый год — новые знания

Автор одного из самых высокооценённых курсов по Python на Udemy дарит бесплатный доступ к нему. Речь о The Python Mega Course 2022: Build 10 Real-World Applications с рейтингом 4.8.

Курс содержит:
🐍 Основы Python (типы данных, функции, модули и прочее)
🐍 Гайды по созданию интерактивной карты в вебе, приложения для распознавания движений через вебку, географического веб-приложения с Flask и Pandas.
🐍 Обработку изображений и видео.
🐍 Парсинг веб-страниц.
🐍 ООП.

И это далеко не весь список. Чтобы получить доступ к курсу, нужно:
✔️Зайти в свой аккаунт на Udemy (или создать новый).
✔️Перейти на страницу курса.
✔️Ввести пароль mega_course.
👍23
This media is not supported in your browser
VIEW IN TELEGRAM
Ты после нескольких часов написания кода

#memes
😁48💯8👍3🌚2
🧑‍💻 Первый в этом году #дайджест по Python

🐍 Как я устроился Python разработчиком без опыта. Реальное собеседование
Ролик Вадима Новоселова с записью реального собеседования на позицию Python-разработчика. Автор получил оффер на 250 тысяч рублей.
🐍 Что произошло в мире Python за 2023 год
Выпуск подкаста MoscowPython про итоги года с Григорием Петровым и Михаилом Корнеевым.
🐍 Настройка WSGI- и ASGI-серверов для Flask, Django и FastAPI
В статье приводятся лучшие практики для настройки таких веб-серверов, как Gunicorn, Uvicorn и Hypercorn.
🐍 Пишем свой GraphQL клиент на Python
Это пошаговое руководство по созданию своего GraphQL клиента на Python с нуля.
🐍 Учимся анализировать данные на примере API Codewars
Основной акцент сделан на Python и практическом применении библиотек для анализа данных, таких как Pandas и Matplotlib.
👍151
Можно ли сказать, что интерпретатор Python (CPython) имеет в составе компилятор?
Anonymous Poll
28%
Да
59%
Да, но есть нюанс
13%
Нет
🤔22
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍3
🐍 А вы знаете про «Дзен Пайтона»?

Если выполнить import this в интерпретаторе, то выведется список принципов работы с Python, составленный Тимом Петерсом.

Он разместил эти принципы в списке рассылки Python в 1999 году. Вместе они отражают философию дизайна языка.

Вот их перевод на русский:
▫️Красивое лучше, чем уродливое.
▫️Явное лучше, чем неявное.
▫️Простое лучше, чем сложное.
▫️Прямое лучше, чем запутанное.
▫️Плоское лучше, чем вложенное.
▫️Разреженное лучше, чем плотное.
▫️Читаемость имеет значение.
▫️Особые случаи не настолько особые, чтобы нарушать правила.
▫️При этом практичность важнее безупречности.
▫️Ошибки никогда не должны замалчиваться.
▫️Если они не замалчиваются явно.
▫️Встретив двусмысленность, отбрось искушение угадать.
▫️Должен существовать один и, желательно, только один очевидный способ сделать это.
▫️Хотя он поначалу может быть и не очевиден, если вы не голландец.
▫️Сейчас лучше, чем никогда.
▫️Хотя никогда зачастую лучше, чем прямо сейчас.
▫️Если реализацию сложно объяснить — идея плоха.
▫️Если реализацию легко объяснить — идея, возможно, хороша.
▫️Пространства имён — отличная штука! Будем делать их больше!
👍38
Какой алгоритм сортировки используют функции 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