seniorpy | Unsorted

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

54326

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

Subscribe to a channel

Senior Python Developer

💡 Хотите стать экспертом в разработке смарт-контрактов на блокчейне?

Сделайте первые шаги 25 июля в 20:00 мск на открытом уроке «Введение в Solidity и создание децентрализованных приложений (dApps)».

Вебинар пройдет в рамках онлайн-курса «Solidity Developer» OTUS и станет интересным и продуктивным началом изучения этой сферы.

✅ На занятии мы:
— Охватим основные концепции Solidity: типы данных, функции, события;
— Погрузимся в практическую работу, разработав и задеплоив смарт-контракт на Solidity с использованием инструмента HardHat;
— Разберем основы работы с Metamask для обеспечения взаимодействия пользователя с децентрализованными приложениями;
— Познакомимся с принципами взаимодействия между фронтендом и смарт-контрактами, используя библиотеку Web3.js, и применим эти знания для создания dApp.

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

➡️ Для участия зарегистрируйтесь

Нативная интеграция. Информация о продукте на сайте www.otus.ru

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

Senior Python Developer

+1 в копилку годных каналов про Python

С @python_practics освоишь Python гораздо проще:

📌 полезные сниппеты кода для твоих задач

📌 теория Python понятным языком с примерами

📌 вопросы из собеседований

📌 бесплатные книги и курсы по Python

📌 тесты и опросы для тех, кто не запоминает сухую инфу

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

Senior Python Developer

PySnooper

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

Для использования необходимо декорировать функцию, которую нужно отладить с помощью @pysnooper.snoop(). Вид лога можно настроить с помощью параметров: variables — какие переменные отображать, depth — максимальная вложенность структур данных, prefix — префикс для каждой строки лога.

Результат использования pysnooper предоставлен на изображении.

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

Senior Python Developer

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

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

Чтобы решить данную задачу нам необходимо:
- Удалить начальные и конечные пробелы, а также уменьшить количество пробелов между словами до одного.
- Разбить строку на отдельные слова и сохранить в списке.
- Поменять порядок слов в списке на обратный с помощью метода reverse().
- Объединить слова в строку, разделенную одним пробелом, и вернуть результат.

#разбор_кода

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

Senior Python Developer

Перегрузка операторов сравнения

Перегрузка операторов сравнения позволяет определить поведение операторов сравнения (таких как ==, !=, <, >, <= и >=) для экземпляров пользовательских классов. Это может быть полезно, когда вы хотите сравнивать объекты на основе определенных атрибутов или свойств.

В этом примере мы определяем класс Person с атрибутами name и age. Затем мы перегружаем операторы сравнения, чтобы они сравнивали объекты Person на основе их возраста. Например, оператор == возвращает True, если возраст двух объектов Person равен, иначе возвращает False.

#это_база

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

Senior Python Developer

❗️Как развиваться Python-разработчику?

Наращивать объем знаний и навыков. За этим приходите на вебинары, приуроченные к старту онлайн-курса «Python Developer. Professional» в OTUS.

✅ 25 июля — «Аннотации типов»
Обсудим различные виды типизации, заглянем в
теорию типов, рассмотрим примеры и best practice по
аннотированию в Python, поговорим про существующие
type checker'ы

✅ 15 августа — «Code review»
Обсудим основы разработки API с помощью фреймворка FastAPI, рассмотрим пример небольшого приложения и осветим особенности развертывания эксплуатации.

🧑‍💻 Спикером выступит Станислав Ступников, руководитель разработки в VK. Эксперт с 10+ лет опыта промышленной разработки.

👉 РЕГИСТРАЦИЯ
https://otus.pw/IM3M/

Нативная интеграция. Информация о продукте www.otus.ru

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

Senior Python Developer

#вопросы_с_собеседований
Как решить проблему конфликта зависимостей?

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

Эту проблему можно решить с помощью менеджера пакетов pipenv, который автоматически устанавливает версии таким образом, чтобы они не конфликтовали друг с другом.
Вместо requirements.txt pipenv предоставляет файл pipenv с версиями пакетов.

При этом один из недостатков pipenv состоит в том, что создание файла pipenv занимает очень много времени.

Для проверки наличия конфликта зависимостей у пакета можно использовать команду pip check.

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

Senior Python Developer

TPOT

TPOT (Tree-based Pipeline Optimization Tool)
— это библиотека с открытым исходным кодом для автоматизированного машинного обучения (AutoML). Она использует популярную библиотеку Scikit-Learn для преобразования данных и алгоритмов машинного обучения.

Один из примеров использования TPOT — это автоматическое создание и оптимизация конвейера машинного обучения. Выше предоставлен пример кода, который демонстрирует, как использовать TPOT для этой цели:

В этом примере мы импортируем класс TPOTClassifier и загружаем набор данных iris из библиотеки Scikit-Learn. С помощью функции train_test_split мы разделяем набор данных на обучающий и тестовый.

Далее создается экземпляр классификатора TPOT с заданными параметрами generations, population_size и verbosity. Классификатор обучается с помощью метода fit и оценивается с помощью метода score.

В конце оптимизированный конвейер экспортируется в виде скрипта Python с помощью метода export.

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

Senior Python Developer

Декоратор @classmethod

Декоратор @classmethod используется для создания методов класса. Метод класса — это метод, который привязан к классу, а не к его экземпляру. Это означает, что вы можете вызвать метод класса на самом классе, а не на его экземпляре.

Один из распространенных способов использования методов класса — это создание фабричных методов, которые возвращают новые экземпляры класса.

В этом примере мы определяем класс MyClass с методом __init__, который принимает один аргумент value. Затем определяем метод класса from_string, который принимает строку и преобразует ее в целое число с помощью функции int. Метод возвращает новый экземпляр класса MyClass, созданный с помощью переданного значения.

Метод класса определяется с помощью декоратора @classmethod и принимает первым аргументом ссылку на сам класс (обычно называемую cls). Внутри метода мы используем эту ссылку для создания и возврата нового экземпляра класса.

#это_база

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

Senior Python Developer

Профессия «Python-разработчик». Курс с нуля до трудоустройства за 10 месяцев.

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

🎁 Мы подготовили для вас спецпредложения, чтобы решиться было проще! Выбирайте один из бонусов: 2 месяца академического отпуска, 1 месяц персональных консультаций с наставником и подготовка к техническому интервью, кешбэк 20 000 ₽ после полного прохождения программы.

🔖Готовы попробовать прямо сейчас? Оставьте заявку и мы расскажем, как пройти бесплатные курсы профессии!

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

Senior Python Developer

Поиск максимальной прибыли

Дан целочисленный массив prices, где prices[i] - это цена данной акции на i-й день. В каждый день вы можете принять решение о покупке и/или продаже акции. В любой момент времени вы можете держать не более одной акции. Однако вы можете купить ее и тут же продать в тот же день. Найдите и верните максимальную прибыль, которую вы можете получить.

Решение работает следующим образом: в методе maxProfit создаем пустой список price_gain, который будет хранить прибыль от каждой сделки. Проходим по списку цен и для каждой пары соседних цен проверяем, если цена на следующий день выше, чем цена на текущий день. Если это так, то вычисляем разницу между этими ценами и добавляем ее в price_gain. В конце возвращаем сумму всех элементов price_gain - это и будет максимальная прибыль.

#разбор_кода

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

Senior Python Developer

Классы данных

Data classes
- это одна из новых функций Python 3.7. Благодаря data classes вам не нужно писать шаблонный код, чтобы получить правильную инициализацию, представление и сравнения для ваших объектов.

Здесь мы используем декоратор dataclass для того, чтобы автоматически сгенерировать методы __init__() и __repr__().
Теперь экземпляр класса Point имеет красивое строковое представление благодаря автоматически сгенерированному методу __repr__(). Также мы можем обращаться к полям x и y напрямую.

#это_база

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

Senior Python Developer

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

Функция enumerate() добавляет счетчик к итерируемому объекту и возвращает его в виде объекта перечисления.

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

#это_база

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

Senior Python Developer

SHAP

SHAP (SHapley Additive exPlanations) — это игровой подход к объяснению вывода любой модели машинного обучения. Он соединяет оптимальное распределение кредитов с локальными объяснениями, используя классические значения Шэпли из теории игр и связанные с ними расширения.

В этом примере мы загружаем модель бостон и разделяем ее на тренировочные и тестовые. Затем мы обучаем модель градиентного бустинга xgboost на тренировочных данных. Далее мы создаем объект Explainer из библиотеки shap, который используется для интерпретации предсказаний модели. Вызываем метод __call__ у объекта explainer с тестовыми данными в качестве аргумента для получения значений SHAP для этих данных.

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

Senior Python Developer

Станьте дипломированным специалистом по Data Science и Machine Learning за 4 года на онлайн-бакалавриате от РАНХиГС и Skillbox.

Всё как в классических вузах, только онлайн.

За время обучения вы:

— Освоите язык программирования Python, основные библиотеки и фреймы для работы с ним.

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

— Изучите машинное обучение, нейросети, deep learning, data engineering.

— Освоите soft skills для работы в IT: научитесь управлять производством, проектами и командой.

А по итогу обучения соберёте портфолио из более чем 10 работ и получите диплом государственного образца.

Успейте подать заявку прямо сейчас по ссылке: https://epic.st/p-j_cr
После этого с вами свяжется специалист приёмной комиссии.

Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880

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

Senior Python Developer

#вопросы_с_собеседований
Как и для чего используется %s?

%s
— это Спецификатор формата и он используется для форматирования строк.
Он позволяет вставлять значения других типов (числа, объекты и т. д.) в строковые выражения, автоматически преобразуя их к строковому представлению.

%s заменяется на строковое представление переданного значения в процессе форматирования. Это удобный способ интерполяции строк.
Помимо простой интерполяции, %s полезен для оформления вывода данных в консоль, логгирования, составления SQL-запросов с подстановкой значений и других задач работы со строками.

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

Senior Python Developer

List и Tuple — зачем нужны и какие отличия

List
и Tupleэто два основных типа данных для хранения последовательностей.

List (список) — изменяемый тип данных, можно добавлять, удалять и изменять элементы.
Tuple (кортеж) — неизменяемый тип данных, элементы нельзя изменить после создания.

Основные отличия:
- Списки изменяемые, кортежи - нет;
- Списки удобнее для добавления/удаления элементов;
- Кортежи более эффективны по памяти и быстрее для доступа к элементам.

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

#это_база

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

Senior Python Developer

Boltons.iterutils

Boltons
— это набор из более чем 230 утилит на чистом Python, распространяемых по лицензии BSD, которые дополняют стандартную библиотеку. А iterutils — модуль, который предоставляет множество полезных функций для работы с итераторами.

В примере мы используем следующие функции:
- chunked: разделяет список на чанки заданного размера.
- windowed: возвращает скользящее окно заданного размера из списка.
- pairwise: возвращает пары соседних элементов из списка.
- split: разделяет список на две части по заданному условию.
- split_at: разделяет список на две части по заданному индексу.

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

Senior Python Developer

#вопросы_с_собеседований
Можно ли создать словарь с упорядоченным набором ключей в Python ниже 3.7?

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

collections.OrderedDict сохраняет порядок добавления элементов, а также предоставляет два дополнительных метода:
- .popitem() удаляет элемент с начала или конца OrderedDict;
- .move_to_end() перемещает элемент в начало или конец OrderedDict.

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

Senior Python Developer

Starlette

Starlette
— это легковесный ASGI фреймворк/набор инструментов, который идеально подходит для создания асинхронных веб-сервисов на Python.
Он готов к использованию в продакшене и предлагает следующие возможности:
- легковесный, низкосложный HTTP веб-фреймворк;
- поддержка WebSocket;
- фоновые задачи в процессе;
- события запуска и остановки;
- тестовый клиент, построенный на httpx.

В этом примере создается приложение Starlette с одним маршрутом, который обрабатывается функцией homepage. Эта функция возвращает JSON-ответ с сообщением “Hello, world”.

Чтобы запустить это приложение, необходимо установить ASGI-сервер, например uvicorn, и выполнить следующую команду: uvicorn example:app, где example — это имя файла с кодом приложения, а app — имя переменной с экземпляром приложения Starlette.

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

Senior Python Developer

Дано целое число, преобразовать его в римскую цифру.

В этом решении мы создаем метод intToRoman, который принимает целое число в качестве аргумента и возвращает его римское представление в виде строки.

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

#разбор_кода

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

Senior Python Developer

⚡️ Тест на знание пентестинга⚡️

— Ответьте на 20 вопросов и проверьте, на сколько хорошо вы знаете практику тестирования на проникновение, а так же готовность к углубленному обучению на онлайн-курсе «Пентест. Практика тестирования на проникновение» со скидкой в OTUS!

Курс необходим не только специалистам в области информационной безопасности, но и:

— Администраторам и DevOps-инженерам, желающим создать надежную и безопасную инфраструктуру.
— Разработчикам, которые стремятся оптимизировать свои приложения.

👉🏻 ПРОЙТИ ТЕСТ:  https://otus.pw/BIQC/

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

Получите свой бонус прямо сейчас и приходите учиться.

Нативная интеграция. Информация о продукте www.otus.ru

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

Senior Python Developer

«Асинхронная архитектура», о проектировании сложных распределенных систем

28 июля стартует 5 набор на курс «Асинхронная Архитектура». Приходите учиться, если уже напарывались на сервисную архитектуру, которая в итоге становилась распределённым монолитом, или просто хотите погрузится в мир больших распределённых систем.

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

Курс направлен на мидлов, сеньоров, тимлидов и CTO. Отважным джунам тоже можно прийти — прокачаете мышление проектировщика, которое позволит писать более понятный и изолированный код.

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

Материалы курса проверены на почти 1500 учеников. На курсе учились команды из Arrival, Toptal, Яндекс, Озон, Авито, Сбер и другие.

Посмотреть программу, отзывы и бесплатный урок →

По промокоду seniorpy10 скидка 10% до 25 июля. Платить можно самому сразу или частями. А лучше за счет компании из любой точки мира.

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

Senior Python Developer

Прыжки по массиву

Дан целочисленный массив nums. Изначально вы располагаетесь на первом индексе массива, и каждый элемент массива представляет собой максимальную длину вашего прыжка на этой позиции.
Возвращается true, если вы можете достичь последнего индекса, или false в противном случае.

Решение: создаем переменную farthest, которая будет хранить самый дальний индекс, до которого можно добраться. Затем проходим по nums и для каждого элемента проверяем, можно ли добраться до него из текущего положения (if i > farthest):
- Если это невозможно, то алгоритм возвращает False, так как мы не можем добраться до последнего элемента.
- Если это возможно, то алгоритм обновляет значение переменной farthest, если текущий элемент позволяет добраться дальше (if nums[i] + i > farthest).
- Если значение переменной farthest больше или равно индексу последнего элемента списка, то алгоритм возвращает True, так как мы можем добраться до последнего элемента.

#разбор_кода

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

Senior Python Developer

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

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

- Функция sorted() принимает итерируемый объект и возвращает новый отсортированный список, не изменяя исходный.
- Метод list.sort() сортирует список на месте, то есть изменяет исходный список.

#это_база

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

Senior Python Developer

Как стать востребованным разработчиком? Изучите Go! После изучения вы сможете создавать надежные и масштабируемые серверные приложения, отвечающие потребностям крупных компаний.

Начните погружение в Go c пробного урока курса от OTUS, на котором 👨‍💻 Владимир Балун, ведущий разработчик в Ozon расскажет об актуальности и перспективах этого языка. Курс подходит разработчиком с опытом от 2-3х лет работы на других языках.

Какие темы затронем на встрече:
— что происходит в IT-бизнесе
— в какие проекты может сейчас попасть Golang-разработчик
— чем хорош этот язык программирования
— какие продукты создаются ТОЛЬКО на Go
— почему Go имеет отличные перспективы в индустрии.

👉 Чтобы получить урок, переходите на наш сайт, регистрируйтесь на курс и вам автоматически откроется доступ и вы получите спец цену на основной курс до конца недели — https://otus.pw/9rbb/

Реклама. Информация о рекламодателе на сайте www.otus.ru.

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

Senior Python Developer

Дан целочисленный массив nums, поверните массив вправо на k шагов.

reverse принимает nums и переворачивает элементы списка между индексами i и j, затем элементов с индексами i+1 и j-1, и так далее, пока индексы не встретятся посередине. Этот процесс продолжается до тех пор, пока левый индекс меньше правого индекса.

rotate принимает nums и число шагов поворота k и поворачивает список на k шагов вправо. Это достигается путем выполнения трех операций переворота: сначала переворачивается левая часть списка (от начала до
len(nums) - k - 1), затем правая часть списка (от len(nums) - k до конца), и, наконец, весь список целиком.
Эти три операции переворота вместе приводят к повороту списка на k шагов вправо.

#разбор_кода

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

Senior Python Developer

Мужчинам без радости в жизни

Проблема:
неправильно выстроенные отношения с девушками, как итог - зависимость, слабая позиция и непроработанные внутренние опоры. Исправить это может каждый, достаточно читать «НеНастоящий» мужчина

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

Это должен знать каждый мужчина @unreal_man

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

Senior Python Developer

H2Oai

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

H2O JVM предоставляет веб-сервер, чтобы все общение происходило через сокет (указанный IP-адресом и портом) с помощью серии вызовов REST.

В этом примере мы импортируем H2OGradientBoostingEstimator из библиотеки h2o и инициализируем H2O с помощью init. Затем загружаем данные и разделяем их на тренировочные и тестовые. Далее мы определяем признаки и целевую переменную для обучения модели.

Затем мы создаем экземпляр H2OGradientBoostingEstimator и обучаем его на тренировочных данных с помощью метода train. После обучения мы можем использовать метод model_performance для оценки качества модели на тестовых данных.

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

Senior Python Developer

LIME

LIME (Local Interpretable Model-agnostic Explanations) - это проект, который объясняет, что делают модели машинного обучения. lime поддерживает объяснения для табличных моделей, текстовых классификаторов и классификаторов изображений.

В этом примере мы загружаем данные о качестве вина и разделяем их на тренировочные и тестовые. Затем мы обучаем модель RandomForestClassifier на тренировочных данных. Далее мы создаем объект LimeTabularExplainer из библиотеки lime, который используется для интерпретации предсказаний модели. Мы выбираем индекс объекта из тестовых данных и используем метод explain_instance для получения объяснения предсказания модели для этого объекта.

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