Библиотека питониста | 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
Именование среза с использованием функции slice

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

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

#трюки
💻 Какие IT каналы в Telegram читаем мы?

Сегодня представляем вашему вниманию 5 каналов, которые действительно этого заслуживают. Подписывайтесь на наших друзей:

CodeCampМастхэв канал для любого IT-специалиста: лучшие книги, полезные сервисы и отборные видеоуроки.

@bugfeature — Подлинный канал "Не баг, а фича", который раскрывает секреты социальных сетей, уязвимости приложений, а так же рассказывает об этичном хакинге, анонимности в сети и личной безопасности в интернете.

@front_end_dev – Актуальные материалы для веб-разработчика: статьи, туториалы, инструменты, фишки ЯП и лучшие практики.

@S_E_Book — Самая редкая и актуальная литература в сети, для ИТ специалистов любого уровня и направления, которая публикуется еще до момента выхода в официальных источниках.

GIT — Канал, где Вы найдете уникальные онлайн-сервисы и инструменты на все случаи жизни.
Ускоряем код с помощью векторизации

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

Вообще лучший способ ускорить любой цикл – это отказаться от него. В примере выше для работы с функцией my_func мы могли бы вызвать ее в цикле для каждого элемента списка, но гораздо проще использовать vectorize.

По сути, vectorize преобразует функцию таким образом, что она начинает принимать весь вектор целиком, а не отдельный его элемент. Надо помнить, что такой подход не всегда приводит к значительному ускорению.

#vectorize #numpy
Библиотека программиста планирует организовать серию офлайн-мероприятий.
Мы создали опрос, чтобы учесть пожелания и интересы подписчиков, а также какие темы наиболее интересны. Опрос займет не более 3-х минут и пройти его можно тут.
👍2
Нахождение наиболее частых элементов списка

Если необходимо найти несколько наиболее часто повторяющихся значений, лучше воспользоваться счетчиком Counter из библиотеки collections.

Метод Counter.most_common(x) возвращает x кортежей, в которых первое значение – элемент, а второе – количество его повторений.

#collections #counter
👍1
Библиотека питониста | Python, Django, Flask pinned «Библиотека программиста планирует организовать серию офлайн-мероприятий. Мы создали опрос, чтобы учесть пожелания и интересы подписчиков, а также какие темы наиболее интересны. Опрос займет не более 3-х минут и пройти его можно тут.»
Параметры функции *args, **kwargs

Думаю, многие хоть раз видели такую запись, сейчас мы узнаем, что это за магические символы. Сообщу сразу, что args и kwargs – общепринятые имена переменных, а разбирать мы будем звездочки перед ними.

В примере функция принимает обязательный аргумент value, а остальных аргументов она как бы не ожидает. В таком случае *args упаковывает все не именованные аргументы в кортеж, а **kwargs – все именованные в словарь.

В целом, конструкция с *args, **kwargs получается достаточно полезной, если мы не знаем, кто и в каких целях будет использовать нашу функцию. То есть, мы можем запихнуть в аргументы после такого практически всё.

#functions #arguments
#job #вакансия #remote #удаленка #middle #senior #Django
Django Education Senior

Stepik совместно с JetBrains создаёт англоязычную платформу, с помощью которой любой желающий может изучать программирование и получить необходимые знания для старта в профессии: https://hyperskill.org/

Сейчас мы занимаемся направлением Django и ищем опытного разработчика, который сможет проверять создаваемые материалы с профессиональной точки зрения.

Мы обещаем:

- нагрузку ~5 часов в неделю
- легкую совместимость с основной работой, вы сможете работать в комфортном темпе в любое удобное время
- ставку от $8 / час
- участие в крутом проекте и амбициозную команду.
- доступ к образовательным ресурсам Hyperskill
- мерч от JetBrains

А с вас -- опыт в Django-разработке и заинтересованность в развитии онлайн-образования 🙂
Тг: @Aleron75infskin
Pyperclip

Модуль pyperclip имеет функции copy() и paste(), которые позволяют отправлять текст в буфер обмена вашего компьютера и получать его оттуда.

Таким образом, можно прямо через код копировать вывод программы в буфер обмена вместо того, чтобы делать это вручную.

Установить этот модуль можно привычным способом через пакетный менеджер pip.

#pyperclip #модули
Вы наверняка заметили, что мы регулярно проводим опросы, чтобы соответствовать вашим запросам и интересам. Знаем, что нас читают не только новички – многие подписчики уже стали миддлами и даже сеньорами. Если чувствуете, что переросли middle-уровень, пора задуматься о создании собственного полноценного проекта – не на одни выходные.

Для такой задачи нужно широкое видение процесса разработки и архитектуры информационных систем. На одной интуиции можно набить шишек, а книжки по таким вопросам достаточно быстро устаревают. Обратите внимание на страницу курса Архитектор ИТ https://proglib.io/w/1790aa41

На странице можно почерпнуть сведения о том, какие знания нужны, и составить собственную программу-максимум. Или сэкономить время и воспользоваться учебным планом GeekBrains – благо уже есть площадка с контентом, приглашенные эксперты-практики и 4 курсовых проекта с поддержкой крупных компаний.
🐍 Скрытые сокровища Python

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

https://proglib.io/sh/K9EewnaibA
Функция reduce

Модуль functools позволяет хорошо раскрыть функциональные возможности Python. Например, в functools есть интересная функция reduce, которая позволяет «сжимать» данные, применяя последовательно функцию и запоминая результат.

Таким образом, в примере выше reduce умножает 1 на 2, затем результат этого умножения на 3 и так далее.

#функции #reduce
Немного про цифры и юникод

0, 1, 2, 3, 4, 5, 6, 7, 8, 9 – не единственные символы, которые считаются цифрами. Python следует правилам Юникода и обрабатывает несколько сотен символов как цифры, полный список вот здесь.

Это влияет на такие функции, как int, unicode.isdecimal и даже re.match. Предупрежден – значит вооружен.

#числа #юникод
Продолжаем конкурс на самый интересный контент в телеграм-каналах Proglib!
Призовой фонд — 280 тысяч рублей.
Срок окончания конкурса -- 15 мая

Автор лучшего поста в отдельно взятом канале получает 20 тысяч рублей.
Мы упростили конкурс — теперь вам достаточно найти интересную и актуальную статью 2020-2021 года, написать к ней небольшой анонс (до 700 знаков) и прислать нам, тем не менее ваши идеи по другим форматам только добавляют + в общий зачет. Авторство можем указать по вашему желанию. В канале @progbook предлагаем отправлять рецензии на новые книги и старые актуальные.

Полный список каналов:
https://t.me/progbook
https://t.me/proglibrary
https://t.me/pyproglib
https://t.me/frontendproglib
https://t.me/javaproglib
https://t.me/dsproglib
https://t.me/phpproglib
https://t.me/cppproglib
https://t.me/mobileproglib
https://t.me/goproglib
https://t.me/csharpproglib
https://t.me/devopsslib
https://t.me/testerlib
https://t.me/hackproglib

Все посты будут с лайками и дизлайками и хэштегом #proglib_contest. Ссылки мы будем прогонять через наш сокращатель, будут браться в расчет лайки, дизлайки, охваты, клики по ссылкам. Выиграет тот кто наберёт больше всего лайков/охватов/кликов по ссылкам в публикации. Присылайте посты боту @proglib_contest_bot с указанием, на какой канал идет публикация. Юридическая информация здесь.
👍1🤔1
​​Не используйте обработку исключений слишком часто

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

Не стоит злоупотреблять try-except конструкциями, так как в большинстве случаев можно справиться с задачей, применяя обычные условия. Используйте обработку исключений только в крайних случаях.

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

#совет #исключения
Запрос пароля у пользователя 

Множеству инструментов командной строки или скриптов для работы требуется имя пользователя и пароль. Если вам придётся писать подобную программу – вы, возможно, сочтёте полезным модуль getpass.

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

#трюки #модули