seniorpy | Unsorted

Telegram-канал seniorpy - Senior Python Developer

44765

Публикуем интересные/полезные фичи/библиотеки языка. По вопросам сотрудничества: @adv_and_pr Канал на бирже: https://telega.in/c/seniorpy

Subscribe to a channel

Senior Python Developer

Функции, поддерживающие только именованные аргументы (kwargs)

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

Это может быть полезно для того, чтобы улучшить понятность кода. Как видите, наша задача легко решается при помощи использования аргумента * перед списком именованных аргументов. Здесь, что вполне очевидно, можно использовать и позиционные аргументы — в том случае, если поместить их до аргумента *.

Читать полностью…

Senior Python Developer

Экономия памяти с помощью __slots__

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

Здесь, когда мы объявляем атрибут slots, Python использует для хранения атрибутов не словарь, а маленький массив фиксированного размера. Это серьёзно сокращает объём памяти, необходимый для каждого из экземпляров класса. У применения атрибута slots есть и некоторые недостатки. Так, пользуясь им, мы не можем объявлять новые атрибуты, мы ограничены только теми, которые имеются в slots. Кроме того, классы c атрибутом slots не могут использовать множественное наследование.

Читать полностью…

Senior Python Developer

Получаем ежедневные новости с помощью Python

Для реализации нам нужно установить библиотеки requests и BeautifulSoup.
pip install bs4
pip install requests

Подробный разбор и описание кода можно найти здесь.

Читать полностью…

Senior Python Developer

Узнаём курс доллара при помощи Python в 2 строчки

Пакет forex-python позволяет получать данные о курсе валют и конвертировать одну валюту в другую. Программа на картинке позволяет нам узнать курс доллара относительно многих других валют мира. Вместо "USD" можно вставить любую другую валюту и получить актуальное соотношение.

Читать полностью…

Senior Python Developer

Senior-разработчик создал крутейший канал про SQL

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

Присоединяйтесь: @SQL

Читать полностью…

Senior Python Developer

Протоколы

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

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

Хоть это и не совсем интерфейсы, но все же классная штука. Еще важно, что протоколы, как и все остальные фишки аннотаций типов, используются в основном со статически типизированным mypy.

#typing #аннотации

Читать полностью…

Senior Python Developer

Создание функций на основе других с "замороженными" параметрами

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

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

Например, можем создать функцию, которая умножает два числа, а потом "заморозить" один аргумент, как на картинке.

Читать полностью…

Senior Python Developer

1. С чем предстоит работать:
Эмулирование зрителей на стримерские платформы с различной защитой(ютуб, твич, кик и подобные)
Опыт работы с сессиями, прокси, куками, обхода антифрода и клоудфлеера, токенами, апи социальных сетей, снифом приветствуется. Делаем на запросах.

2. На каком языке программирования будет основная часть работы:
Языки: Python | Node.js | C++ | С# уровня Middle или с опытом работы в накрутке

3. На какие сроки вам нужен исполнитель:
1-12 месяцев

4. Сколько готовы выплачивать исполнителю за работу:
От 500 до 5000$ за каждую площадку

Контакты:
Пишите в тг @TiKey_K

Читать полностью…

Senior Python Developer

Используйте dict.get() вместо dict[]

Есть несколько способов получения значений из словарей.

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

Поэтому мы считаем, что лучше использовать метод get у словарей. Его основной плюс заключается в том, что он принимает опциональный аргумент, отвечающий за значение по умолчанию.

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

В итоге мы убираем возможные ошибки в случае, если нужных ключей в словаре нет.

Читать полностью…

Senior Python Developer

Сортировка списков

В Python есть два встроенных варианта для сортировки списков — функция sorted() и метод list.sort(). Результат в обоих случаях одинаков, но всё же есть нюансы.

Функция sorted() принимает на вход аргумент в виде списка, а возвращает уже новый отсортированный список. При этом исходный список не изменяется.

Метод sort() в свою очередь применяется к списку, изменяет его непосредственно и ничего не возвращает.

Читать полностью…

Senior Python Developer

Разница между == и is

Многие разработчики не понимают разницу этих двух операторов сравнения. Из-за неправильного использования == и is в приложениях могут возникнуть странные ошибки.

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

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

Читать полностью…

Senior Python Developer

Выиграй 4 000 000 ₽ на True Tech Champ

МТС приглашает опытных и начинающих разработчиков поучаствовать в чемпионате. В треке «Программирование роботов» нужно будет создать алгоритм для прохождения лабиринта. Победит тот, чей робот окажется самым быстрым. При этом не обязательно разбираться в устройстве роботов: эксперты трека уже сконструировали их и создали прошивку. Для участия достаточно уметь программировать на одном из языков: С++, C#, Go, Python, JS, Java.

Регистрация открыта до 12 октября, отборочные онлайн-этапы уже стартовали!

До финала смогут дойти на равных разработчики вне зависимости от стека или уровня: питонисты или джависты, джуны или сеньоры. А с полуфиналов начнётся командный этап — можно собрать свою дримтим.

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

Зарегистрироваться можно по ссылке.

Читать полностью…

Senior Python Developer

Иногда хочется простого человеческого… спокойствия и тишины! После всех дейликов, разобранных бэклогов голова уже сама как бсод. Понимаем и не осуждаем.

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

Доброград – это новый город в 2,5 часах от Москвы, где соединились современные технологии, живописная природа и мультифункциональная среда, способная адаптироваться под потребности человека. Документацию дадим сразу по ссылке

Тыквенный латте тоже в наличии!

Реклама. ООО "СЗ "Доброград". ИНН 3317027134

Читать полностью…

Senior Python Developer

Перечисления

Python поддерживает простой механизм работы с перечислениями, которые ещё называют enum. Подобные перечисления удобно использовать для хранения списков констант.

Из документации можно узнать о том, что Enum — это набор символических имён, привязанных к уникальным, неизменным значениям. Члены одного перечисления можно сравнивать на идентичность.

Также можно задать геттер через @property, который используют для получения перечислений в других форматах. В примере реализовано перечисление цветов в RGB, а через геттер их можно получить в формате hex.

Читать полностью…

Senior Python Developer

Делаем скриншоты

Кросс-платформенный модуль pyscreenshot позволяет делать скриншоты как всего экрана, так и его части. Для его работы должна быть корректно установлена библиотека pillow.

Для создания скриншота используется метод grab, для его открытия – show, для сохранения – save. Также в grab можно передать аргумент bbox для захвата только определённой части экрана.

Подобный модуль может быть полезен, например, для логирования скриптов, использующих Selenium, который может открывать браузер и производить какие-либо операции в нём.

Читать полностью…

Senior Python Developer

В России можно посещать IT-мероприятия хоть каждый день: как оффлайн, так и онлайн

Но где найти единую "базу" ивентов?
Чтобы "заглянул -> увидел все что есть -> выбрал -> пошел"?

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

👍 Очень крутая вещь, где вы точно не пропустите ничего важного и интересного.

🗂 IT-мероприятия России / ITMeeting / IT events - подпишитесь, чтобы не пропустить свой ивент!

Читать полностью…

Senior Python Developer

Как удалить пробелы из начала строки (из её левой части), из её конца (из правой части), или с обеих сторон строки?

Здесь нам пригодятся, соответственно, методы lstrip(), rstrip() и strip().

Читать полностью…

Senior Python Developer

Главная конференция по бизнесу в Telegram

31 октября в Москве пройдёт первая конференция по Telegram от крупнейшего сервиса аналитики Telemetr. Топы Телеграм-рынка, маркетологи и представители бизнеса обсудят самые актуальные тенденции и перспективы развития платформы Telegram.

Присоединиться к мероприятию можно будет и онлайн. Тут найдёте всю информацию - https://telemetr.pro.

На конференции вас ждут:
- 20+ опытных спикеров
- 1000+ онлайн и офлайн участников
- две сцены
- нетворкинг активности
- лаунж зона
- вкусный фуршет
- яркое afterparty в PAPA Moscow

Спикерами главной сцены будут: Артемий Лебедев, руководитель Telemetr - Денис Ларионов, основатель агентства GoDigital - Сурен Альбертян, основатель Сидорин ЛАБ - Дмитрий Сидорин и многие другие!

За подробностями сюда - https://telemetr.pro

А купить билет со скидкой в 10% можно, использовав наш промокод - TMConf10

Купить билет - https://telemetr.pro

Читать полностью…

Senior Python Developer

Тестирование на pytest

pytest — ближе по духу к Python нежели unittest, который накладывает определенные обязательства при разработке тестов. Например, создание классов-наследников от TestCase или выполнение определенной процедуры запуска тестов.

При разработке на pytest ничего этого делать не нужно. Вы просто пишете функции, которые должны начинаться с "test_" и используете assert, встроенные в Python.

Также он поддерживает запуск тестов на unittest и nose, то есть полная обратная совместимость с ними.

Читать полностью…

Senior Python Developer

Функции только с позиционными параметрами

Если с помощью inspect посмотреть на то, как объявлена встроенная функция float, то увидим, что есть входной параметр x и еще какой-то непонятный слэш.

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

Такое поведение как раз задает тот слэш. Параметры, записанные до него, можно передать только как позиционные. После него – как угодно, все будет работать стандартно.

Читать полностью…

Senior Python Developer

Поздравляем, вы на 1 шаг ближе к работе мечты 🥳

Осталось только прочитать этот пост, подписаться на канал и откликнуться на вакансию 😉

Avito Career — место, где Авито делится актуальными вакансиями и стажировками для Python-разработчиков.

Подписывайтесь, чтобы найти ту самую работу ✨

Читать полностью…

Senior Python Developer

Что такое глубокая копия?

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

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

Читать полностью…

Senior Python Developer

3D визуализация на Python

Vpython — относительно простая библиотека для демонстрации физических явлений. В примере создаём вращающийся куб.

В начале программы создаём сам куб, задавая параметры, сохраняем его в переменную, а затем для вращения создаём бесконечный цикл. Документация:
https://www.glowscript.org/docs/VPythonDocs/index.html

Читать полностью…

Senior Python Developer

Станьте разработчиком нейро-сотрудников на Python и зарабатывайте от 150.000р в месяц 🔥🔥🔥

Мы научим вас создавать топовых нейро-сотрудников на базе GPT-4 Omni, и вы сможете:
1️⃣ Устроиться разработчиком в крупную компанию и зарабатывать от 150 тысяч ₽ в месяц
2️⃣ Разрабатывать такие проекты на заказ и зарабатывать от 500 тысяч ₽ за проект
3️⃣ Создать нейро-сотрудника в вашей компании и вырасти на +30-100% в зарплате

Что будет на интенсиве?
🧬 Теория: как создаются нейро-сотрудники с GPT-4o на Python
🧬 Практика: мы создадим нейро-консультанта, нейро-HR, нейро-маркетолога и др.

Ведущий интенсива - Senior AI разработчик нейросетей и основатель Университета искусственного интеллекта
🔥 Регистрируйтесь на бесплатный интенсив! Встречаемся в ближайший четверг!

Читать полностью…

Senior Python Developer

Форматирование строк для URL-адресов

Стоит вспомнить, что slug — это уникальная строка-идентификатор, понятная человеку и содержащая только безопасные символы: латинские символы в нижнем регистре, цифры и дефис.

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

Выше в коде мы написали простую функцию, где использовали методы lower() для приведения в нижний регистр и strip() для удаления пробелов слева и справа.

Также для удаления некоторых символов и замены на знак дефиса были использованы регулярные выражения и встроенный пакет re для работы с ними.

Читать полностью…

Senior Python Developer

Константы пакета string

Встроенный модуль string предоставляет расширенный функционал для работы со строками.

Поговорим про константы этого модуля. Из интересного стоит выделить ascii_letters, punctuation, digits и whitespace — символы ascii, знаки пунктуации, цифры и пробельные символы.

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

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

Читать полностью…

Senior Python Developer

Удаление префиксов и суффиксов

По какой-то причине многие разработчики посчитали эту фичу в обновлении 3.9 не очень интересной и попросту забыли. И зря.

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

В Python 3.9 были добавлены методы для строк .removeprefix и .removesuffix, предназначенные специально для удаления префиксов и суффиксов в строках.

Читать полностью…

Senior Python Developer

Операции с zip архивами

Для манипуляций с zip файлами используется встроенный модуль zipfile (установка не требуется). Напомним, что zip используется для сжатия файлов без потерь.

Посмотреть файлы архива можно с printdir, извлечь все файлы — с extractfile. У модуля есть еще несколько полезных функций, включая создание собственных архивов. Документация: https://docs.python.org/3/library/zipfile.html

Читать полностью…

Senior Python Developer

👩‍💻 Программирование теперь в Telegram!

Вот 10 обучающих каналов по самым востребованным направлениям в IT.

Выбирай своё направление:

👩‍💻 Python: @python_ready
👩‍💻 Java: @java_ready
👩‍💻 C/C++: @cpp_ready
👩‍💻 Backend: @backend_ready
👩‍💻 Frontend: @code_ready
🖥 Базы Данных & SQL: @sql_ready
👩‍💻 Весь IT: @roadmap_ready
👩‍💻 C#: @csharp_ready
📖 IT Архив: @archive_ready
🖥 Design: @time_design

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

Читать полностью…

Senior Python Developer

Яндекс Foodtech Tour едет в Санкт-Петербург!

Митапы для бэкенд-разработчиков о технологиях Еком-сервисов Яндекса теперь в северной столице. 17 октября организаторы расскажут о новых сценариях и стартапах в компании. В программе три доклада: 
👉 Никита Пятаков, старший разработчик в Яндекс Лавке, расскажет о запуске аптек внутри сервиса
👉 Леша Тришин, руководитель группы специального подключения в Яндекс Маркете, поделится опытом интеграции сервиса с китайскими маркетплейсами
👉 Олег Гладышев, старший разработчик в Яндекс Еде, объяснит, зачем Яндексу свои умные велосипеды, и покажет, как они создаются

После докладов гостей ждет открытый микрофон со спикерами и афтепати. Зовите друзей и регистрируйтесь

Обратите внимание, количество мест ограничено. После регистрации обязательно дождитесь подтверждения заявки. 

Читать полностью…
Subscribe to a channel