seniorpy | Unsorted

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

44765

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

Subscribe to a channel

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

Красивые таблицы в терминале

PrettyTable – это библиотека, предназначенная для быстрого и легкого представления табличных данных в виде ASCII. Модуль можно установить обычным способом через pip.

Для создания таблиц и работы с ними используется класс PrettyTable из этого модуля. Задать название для столбцов можно с помощью атрибута fields_name. Строки в таблицу добавляются путем вызова метода add_row.

Более того, модуль prettytable позволяет регулировать различные параметры, сортировать данные, работать с html, а также взаимодействовать с csv и sql таблицами, так что возможностей у этого модуля предостаточно.

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

Senior Python Developer

Python-разработчики, для вас кое-что есть
Попробуйте силы на Weekend Offer в Т-Банке.

Можете работать с современным стеком технологий и экспериментировать. Здесь хороший читаемый код, отлаженные процессы и приятная атмосфера, так что будет время на работу и обсуждение новых идей.

Если вы специалист уровня middle или senior, подайте заявку на Weekend Offer до 16 октября и пройдите все секции за выходные. Справитесь — пришлем оффер на неделе. Зарегистрироваться тут

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

Senior Python Developer

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

Выкладываем 3834 ГБ платных курсов, книг и лекций, и готовых скриптов для программистов в Telegram

Собеседования Python: t.me/pythoninterview
Машинное обучение: t.me/aiml
Python проекты с кодом: t.me/pythonl
Python Книги: t.me/pythonlbooks
Вакансии Python: t.me/python_djangojobs
Data Science: t.me/data_analysis_ml
Курсы Python: t.me/pytcourse
Хакинг: t.me/linuxkalii
Целая папка Питониста: /channel/addlist/8vDUwYRGujRmZjFi

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

Senior Python Developer

Защищаем исходный код обфускацией

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

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

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

В Python есть отличная библиотека pyarmor, предназначенная именно для этого. Пример использования этого пакета в терминале представлен на картинке.

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

Senior Python Developer

➡️ Pony ORM — продвинутая ORM с поддержкой генерации SQL-запросов

Pony ORM — это удобная и мощная ORM, которая позволяет писать запросы на SQL, используя синтаксис Python. Она автоматически генерирует SQL-запросы на основе Python-кода, что делает работу с базами данных простой и интуитивной.

Pony ORM — отличный выбор для разработчиков, которым важно писать лаконичный код при работе с базами данных, без явного написания SQL-запросов.

🔗 Ссылочка на доку

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

Senior Python Developer

💸 Вакансии для IT'шников
Выбери своё направление

1. Frontend
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. C/C++
9. Golang
10. PHP
11. Kotlin
12. Swift

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

Senior Python Developer

#вопросы_с_собеседований
Когда выполняется except, в блоке try-except?

Блок try-except обычно используется, когда мы хотим что-то выполнить, если возникли ошибки. except выполняется, когда код в блоке try вызвал ошибки.

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

Senior Python Developer

6 Python декораторов, которые значительно упростят ваш код

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

Смотреть статью

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

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

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

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

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

Senior Python Developer

Ограничение использования памяти и процессора

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

Для работы с процессором мы сначала получаем значения soft и hard лимитов для ресурса LIMIT_CPU, а затем ставим лимит, используя некоторое число секунд, задаваемое при помощи аргумента seconds, и значение hard лимита. После регистрируется обработчик signal, который начинает процедуру выхода при превышении выделенного нами времени. Для работы с памятью мы также получаем значения hard и soft лимитов, а потом ставим ограничения с помощью метода setrlimit, передавая в него размер ограничения и значение hard лимита.

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

Senior Python Developer

Фреймворк Flask

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

Для первого рабочего приложения достаточно шести строк. В начале импортируем модуль, установленный как обычно при помощи pip, затем создаём объект-приложение, далее с помощью декоратора указываем путь в адресной строке и определяем функцию, которая возвращает отображаемый текст. После запуска приложения результат можно увидеть в браузере по адресу http://localhost:5000/.

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

Senior Python Developer

from future import

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

Впрочем, не всё так плохо. Модуль future даёт возможность импортировать функциональность будущих версий Python. Это прямо как путешествие во времени, или магия.

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

Senior Python Developer

➡️ Использование types.MappingProxyType для создания неизменяемых отображений

types.MappingProxyType — это объект-обёртка, который позволяет создать неизменяемое отображение на основе существующего словаря. Он предоставляет доступ для чтения к данным словаря, но блокирует возможность их изменения, что полезно для защиты данных от случайных изменений.

🗣 В этом примере MappingProxyType используется для создания защищённого отображения.


✔️ MappingProxyType помогает обезопасить данные, которые не должны изменяться в процессе работы программы.

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

Senior Python Developer

➡️ Polars — библиотека для обработки данных, оптимизированная для больших наборов

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

Polars — отличный выбор для проектов, которым требуется быстрая обработка больших объёмов данных, с минимальными затратами на память.

🔗 Ссылочка на доку

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

Senior Python Developer

Вычисление размера объектов

Так как в python всё является объектами, мы можем вычислить размер практически у всего с помощью sys.getsizeof().

Функция getsizeof вызывает метод __sizeof__ объекта и добавляет дополнительные данные сборщика мусора. Хотя все встроенные объекты вернут верный размер, в общем случае это не будет так для пользовательских объектов.

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

Senior Python Developer

Разбираем как решать задачи на LeetCode

✅ Примеры решений
✅ Пояснения

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

1. Python
2. JavaScript
3. Java
4. C#
5. Golang
6. C/C++
7. PHP
8. Kotlin
9. Swift

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

Senior Python Developer

Метод Counter.most_common()

Возвращает список из n наиболее распространенных элементов и их количество от наиболее распространенных до наименее. Если n опущено или None, метод cnt.most_common() возвращает все элементы в счетчике.

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

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