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

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

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

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
🐍Как работает интерпретатор 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
🎲 Что делает функция seed() модуля random

random() возвращает разные значения каждый раз, когда вызывается. Однако иногда программам нужна воспроизводимость. В этих случаях можно использовать функцию seed() для инициализации псевдорандомного генератора. Он будет возвращать один и тот же набор ожидаемых значений.

Дело в том, что при вызове random.seed с определённым значением, устанавливается начальное состояние алгоритма генерации. Это значение используется для создания первого числа в последовательности.

➡️Пример:

import random

random.seed(1)

for i in range(5):
print('{:04.3f}'.format(random.random()), end=' ‘)


seed() передаётся объект. Если не указывать аргумент, то по умолчанию будет использоваться текущее время. Если передать не число, а строку, то функция преобразует её в int.

#код
Please open Telegram to view this post
VIEW IN TELEGRAM
👍122
💬 Как вы считаете, нужен ли PEP 736?

В сообществе Python идут споры о новом предложении по синтаксису аргументов. PEP 736 предлагает заменить конструкцию f(x=x) на f(x=) в случаях, когда именованный аргумент совпадает с именем переменной, соответствующей его значению. 

Вот пример. Вместо:

my_function(
my_first_variable=my_first_variable,
my_second_variable=my_second_variable,
my_third_variable=my_third_variable,
)


следует писать:

my_function(my_first_variable=, my_second_variable=, my_third_variable=)


❤️ — одобряю PEP 736
🤔 — мне не нравится

#интерактив
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔21981👍6😁2
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы

#️⃣C#

Библиотека шарписта
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие профильные каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика

💼Каналы с вакансиями

Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
🥱3👍2🤔21
🧩 Как разместить резюме на GitHub Pages?

GitHub Pages — удобная платформа для размещения статических веб-страниц. На ней можно размещать любой контент, не нарушающий правила сервиса.

🧙‍♂️ Из преимуществ:

Размер сайта — до 1 Гб.
Объем трафика — 100 Гб в месяц.
Количество сборок в час — до 10.

Но, вместе с плюсами, есть и минусы. О них и обо всём другом в статье 👇

🔗 Читать статью
🔗 Зеркало
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
🍊Подборка лучших статей «Библиотеки программиста» за декабрь: сохраняй в заметки, чтобы не пропустить #самыйсок

🐍📋 F-строки в Python для интерполяции и форматирования строк
🐍🤖✍️ Документирование кода и проектов на Python с помощью ChatGPT
🔟🏢 ТОП-10 российских IT-работодателей
🤖 Машинное обучение: что это такое и как оно работает
📁💡Где программисту взять идеи для портфолио
🌎 ТОП-10: рейтинг лучших зарубежных работодателей в IT
🐍⚙️ Python или Rust: что выбрать для анализа данных и машинного обучения
🐍🧫 Создаём игру «Жизнь» Джона Конвея на Python
🧠🧩 Зачем айтишнику психолог?
😺🐙 Как разобраться в Git: краткая инструкция для джунов
👨‍🎓 14 бесплатных ресурсов, которые пригодятся каждому разработчику
⚙️📕 Ответы на вопросы для самопроверки из книги «Тестирование Дот Ком» Романа Савина
🎄🎁 10 абсурдных подарков программисту на Новый год
✍️ Почему отсутствие технической документации убьёт ваш проект?
6👍5🥱1
🐰 Никаких фигурных скобок: очередная пасхалка в Python

Если попытаться выполнить следующий код:
from __future__ import braces

то выведется ошибка SyntaxError: not a chance

Это шутка, которую разработчики включили в язык, чтобы подчеркнуть особенность его синтаксиса — отсутствие необходимости отделять блоки друг от друга фигурными скобками.

👉Дело в том, что модуль future позволяет импортировать в старый код обратно несовместимые функции (например истинное деление, появившееся в Python 3.0). Таким образом, «not a chance» однозначно даёт понять, что в Python никогда не будут введены фигурные скобки.
18😁11👍6