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

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

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

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
Потоковый ввод

Вы можете обрабатывать ввод от пользователя потоком. В таком случае для завершения надо воспользоваться специальной "командой" на Windows — Ctrl + D. Запустить потоковый ввод можно через библиотеку sys и метод stdin.

Если требуется получить и тут же обработать строку, то так и пишем: sys.stdin

Если надо в начале прочитать весь потоковый ввод, а затем обработать, то sys.stdin.readlines()

На картинке представлено 2 варианта.

#proglib_contest
Подходит к концу эпический конкурс на самый интересный контент в телеграм-каналах Библиотеки программиста. Посты собирают всё больше откликов — спасибо за ваши старания!

У всех, кто хотел поучаствовать, остался последний шанс побороться за 20 000 ₽ в каждом из каналов: @progbook, @proglibrary, @pyproglib, @frontendproglib, @javaproglib, @dsproglib, @phpproglib, @cppproglib, @mobileproglib, @goproglib, @csharpproglib, @devopsslib, @testerlib, @hackproglib. Общий призовой фонд 280 000 ₽.

До полуночи примем последние посты — в некоторых каналах шансы на победу всё ещё высокие. Лайфхак: эти каналы нетрудно вычислить по хэштегу #proglib_contest 😉.

Напоминаем, как участвовать: пишем анонс до 700 знаков к любой актуальной айтишной статье 2020-21 годов или рецензию книги для @progbook. Отправляем получившийся текст и название канала боту @proglib_contest_bot. Чей пост в канале наберёт больше откликов, тот и выиграл.

Через три дня подведем итоги и огласим список победителей. Юридическая информация: https://proglib.io/best-post-contest.
👍1
Разыскивается product owner!
ВТБ ищет профессионала для управления новыми сервисами и продуктами: от создания и тестирования до запуска и эффективного развития.
Что нужно от тебя: подтвержденный опыт разработки продукта, понимание современных гибких методологий IT-разработки, знания в области CusDev, JTBD и других глубинных исследований.
Что гарантирует ВТБ: идеальный микс свободы действий как в стартапе и надежности крупного банка.
Подробнее о вакансии: https://www.vtbcareer.com/vacancy/789086/
Библиотека colorama

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

Библиотеку надо установить:

pip install colorama

Colorama позволяет изменять сам цвет текста, а так же его фон и стиль цвета. На картинке мы не можем показать изменение фона, но вы можете опробовать сами.
Библиотека FuzzyWuzzy

Интересная и полезная библиотека поиска совпадений в тексте. Очень поможет вам при работе над общающимися ботами: голосовыми или текстовыми помощниками.

Разумеется, это один из инструментов, всегда можно использовать другой, но я лично пользуюсь этим.

Библиотеку следует установить:

pip install fuzzywuzzy

Несколько примеров работы библиотеки на картинке.
Тестировщик ПО - это не просто одна из самых простых и доходных профессий для новичка в IT. Здесь вы сможете напрямую влиять на продукт, находить баги и ошибки и писать документацию. По сути, от вас будет зависеть то, насколько удобным будет продукт для пользователя.

На факультете «Тестирование ПО» от GeekBrains вы освоите профессию тестировщика с нуля. За год обучения получите все навыки вы получите всё для старта карьеры: навыки ручного тестирования, практику автоматизации на Java и опыт работы с веб-приложениями.

Кстати, на факультете не только научат новой профессии, но и помогут начать карьеру — студентов курируют HR-специалисты GeekBrains

Ворваться в IT можно уже сейчас со скидкой на обучение в 45% → https://gb.ru/link/8O5Z8I
Асинхронное программирование

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

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

Очень важная тема, с помощью декорирования можно писать очень удобные логи или существенно расширять функции.

Многие библиотеки работают с использованием декораторов: Flask и aiogram хорошие тому примеры.

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

Неудобно каждый раз для вывода объединять строки через join() или тем более как-то объединять числа. Мы можем распаковать кортеж или список, воспользовавшись звездочкой *. Со словарями данный способ не работает.

На самом деле применение более широкое. Звездочка может также собирать несколько значений в одну переменную. Очень удобно применять для функций с бесконечным количеством аргументов или только с именованными аргументами.
👨🏻‍💻Middle Python Developer, Serpstat, удалённо или в офис, Одесса, Киев

О компании:
🔸В команду Serpstat (международный HighLoad проект) ищем Middle Python Developer.
🔸Технологии, которые используем в компании: Python3, PostgreSQL, Scrappy, ElasticSearch, Rabbitmq.
🔸Serpstat — это 245 000+ пользователей, продукт представлен в 230 странах, базы данных Google для всех стран, 230 баз ключевиков, более 300 серверов, больше 250 Тб данных.

Что мы ожидаем от Вас:
🔸Опыт разработки на Python от 2 лет.
🔸Знание и понимание принципов ООП.
🔸Опыт проектирования баз данных и оптимизация запросов.
🔸Опыт разработки асинхронных приложений.
🔸Опыт проектирования и разработки data pipeline.
🔸Знание Unix систем.

Что мы готовы предложить:
🔸Удобный график: с 8-10 до 17-19
🔸Зарплата по итогам собеседования.
🔸Возможность работать в офисе в Одессе, Киеве, или полностью удаленно.
🔸Оплачиваемые больничные и отпуск.
🔸Посещение профильных конференции за счет компании (мы оплачиваем 50% стоимости билета на мероприятие и проезда), а также участие в конференциях и семинарах организаторами которых является Netpeak Group.
🔸Возможность обучения и развития: опыт и помощь наших сотрудников, помощь в профессиональной адаптации и обучение куратора на протяжении всего испытательного срока.
🔸Карьерную лестницу и карту знаний, которые дают прозрачное понимание того, что надо сделать, чтобы перейти на новую ступеньку.

Подробности вакансии: https://career.netpeak.group/vacancy/middle-python-developer/
Контакт: @twen_netpeak
Выполнить строку - eval()

Говорят, каждый программист должен написать калькулятор. Но если вы python разработчик, то вы можете сделать это в одну строчку:

Что за eval и почему это работает?
eval() создана чтобы выполнять выражения и функции, обязательно возвращая какой-то результат. Так можно облегчить написание кода, принимая строкой словари, списки.

Единственное, что не умеет eval - присваивать что-то переменным. Зато она может их использовать!

Правильное применение функции сильно упростит вам жизнь.
В этом пошаговом проекте мы создадим инструмент массового переименования файлов с использованием Python и pathlib для управления процессом переименования файлов.

https://proglib.io/w/da640354
Пришло время подвести итоги конкурса на лучший контент #proglib_contest. Искренне благодарим всех, кто принял активное участие, без вашей поддержки конкурс бы не получился.

Победителем канала Библиотека питониста становится автор поста — барабанная дробь 🥁https://t.me/pyproglib/2330.

Победитель определен по количеству лайков под постом среди других конкурсных сообщений. За победный пост автор получает 20 000 ₽. В ближайшее время мы свяжемся с победителем и отправим приз — оставайтесь на связи.

Спасибо, что читаете нас!
Learn Python Visually: Creative Coding with Processing .py (2021)
Автор: Tristan Bunn
Количество страниц: 296

Эта книга для начинающих знакомит непрограммистов с основами Python в визуальном контексте, ориентированном на искусство. Замечательно эффективный подход Тристана Банна к обучению создан, чтобы помочь вам понять и заодно визуализировать основные концепции программирования. По мере того, как вы станете более свободно владеть как Python, так и программированием в целом, темы в книге будут смещаться в сторону овладения алгоритмическим мышлением.

Скачать книгу
Бесконечные списки

Мы уже рассказывали про важность копирования списков. Но именно из-за такой процедуры появляется возможность создавать бесконечные списки. Дойти до конца такого списка невозможно, при этом он потребляет минимум памяти. Попробуйте создать сами.

На картинке (см. выше) видно создание. А затем мы пробуем модуль copy, чтобы узнать сможет ли он сделать глубокое копирование бесконечного объекта?

Применить знание особо негде, но данное задание помогает понять работу списков. Возможно, такой вопрос задаст вам рекрутер на одном из собеседований.
Копирование словарей и других объектов

Новички часто допускают такую ошибку при создании копии списка:
lst2 = lst1

При работе с одним из словарей оказывается, что изменяются оба.

Почему так происходит?
Об этом — в завтрашнем посте. Пока что расскажу, как этого избежать:

У списка существует специальный метод copy(), который нужен как раз для таких случаев.

Но подобное работает не всегда! Если имеется множество вложенных списков, то надо сделать полное копирование импортировав модуль copy и воспользовавшись методом deepcopy().
Почему присвоение не является копированием?

В python все является объектом. В этом легко убедится воспользовавшись функцией dir().

При присвоении в новую переменную отправляется ссылка на объект. А при изменении объекта ссылка на него не меняется.

Тут многие могут спросить про строки и числа, поэтому отвечаю — с ними то же самое. Просто при операциях не изменяется старый объект, а создается новый. Все это можно проследить воспользовавшись функцией id(), которая показывает номер объекта.

Интересно то, что за частью чисел в языке на программном уровне закреплена ссылка на объект. Можете попробовать сами.