➡️ Использование модуля ast для анализа и модификации исходного кода Python
Модуль ast (Abstract Syntax Tree) позволяет анализировать и модифицировать исходный код Python на уровне его абстрактного синтаксического дерева (AST). Это мощный инструмент для тех, кто хочет динамически изменять код, строить анализаторы или трансформировать Python-программы на лету.
🗣 Этот модуль предоставляет доступ к внутренним структурам Python, что делает его полезным для статического анализа кода или автоматического изменения исходного текста программы.
✔️ ast открывает множество возможностей для тех, кто занимается метапрограммированием или созданием собственных инструментов для анализа и оптимизации Python-кода.Читать полностью…
#вопросы_с_собеседований
Как работает метод __new__()
в Python?
Ответ ⬇️
Метод __new__() создает новый экземпляр класса, выделяя память для объекта. Он вызывается до метода __init__(), который уже занимается инициализацией созданного экземпляра. Это важно для работы с неизменяемыми типами, такими как str или int, а также в случаях, когда нужно контролировать процесс создания объекта, например, в паттерне Singleton.
Вебинар: «Как построить pipeline предобработки данных для машинного обучения»
📅 Дата: 21 октября 2024, 18:00 (МСК)
👩💻 Спикер: Мария Тихонова
🚀 О чем поговорим:
На вебинаре вы научитесь строить полноценный pipeline для подготовки данных под задачи машинного обучения. Мы обсудим ключевые шаги, такие как Exploratory Data Analysis (EDA) и предобработка данных, на конкретных примерах.
💼 Что вы получите:
- Разберетесь, как проводить разведочный анализ данных (EDA).
- Изучите лучшие практики по очистке, трансформации и подготовке данных для ML-моделей.
- Поймете, как избежать типичных ошибок при работе с данными.
📌 Встречаемся в преддверии старта курса «Machine Learning. Basic». Все участники вебинара получат специальную цену на обучение!
👉 Для участия зарегистрируйтесь на сайте: https://otus.pw/vexW/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Метод file.writelines()
Метод файла file.writelines() записывает последовательность (список) строк в файл file.
Последовательностью может быть любой итерируемый объект, содержащий в качестве элементов строки. Обычно это список строк.
Обратите внимание, что метод file.writelines() не добавляет разделители строк автоматически. Если они требуются, то добавляйте их вручную.
Извлекаем домен из URL-адреса с помощью Python
Для анализа домена URL-адреса в Python 3 вы можете использовать следующую конструкцию.
Однако для надежного парсинга домена верхнего уровня (example.testв данном примере) необходимо установить специализированную библиотеку (например, tldextract).
Получаете зарплату в криптовалюте? 💸
IT-специалисты, это для вас!
Многие компании предлагают оплату труда в криптовалюте, но как ее удобно и безопасно обменять на фиатные деньги?
С помощью Exnode вы можете обменять криптовалюту на наличные быстро и надежно!
1. Перейдите на Exnode
2. Выберите ваш город
3. Выберите обменник с выгодным курсом.
4. Оставьте заявку.
5. Получите наличные в офисе в вашем городе.
Преимущества:
• Анонимные сделки: Совершайте обмен криптовалюты, не раскрывая личные данные.
• Проверенные обменники: Exnode сотрудничает только с надежными и проверенными сервисами.
• Безопасность и конфиденциальность: Ваша информация и сделки защищены.
Подписывайтесь на телеграм-канал Exnode, чтобы быть в курсе всех новостей мира криптовалют!
Преобразование списка в словарь
В этом примере мы преобразуем список формата [key_1, value_1, key_2, value_2] в словарь {key_1: value_1, key_2: value_2}.
Пример преобразования представлен на картинке.
Функции, поддерживающие только именованные аргументы (kwargs)
Для того, чтобы при использовании некоей функции сделать так, чтобы ей можно было бы передавать только именованные аргументы, можно поступить следующим образом (см картинку).
Это может быть полезно для того, чтобы улучшить понятность кода. Как видите, наша задача легко решается при помощи использования аргумента * перед списком именованных аргументов. Здесь, что вполне очевидно, можно использовать и позиционные аргументы — в том случае, если поместить их до аргумента *.
Экономия памяти с помощью __slots__
Если вы когда-нибудь писали программы, которые создают по-настоящему большие количества экземпляров некоего класса, то вы могли заметить, что таким программам неожиданно может понадобиться очень много памяти. Происходит это из-за того, что Python использует словари для представления атрибутов экземпляров классов. Это хорошо сказывается на производительности, но, с точки зрения потребления памяти, это неэффективно. Обычно, правда, проблем эта особенность не вызывает. Однако если вы столкнулись в подобной ситуации с нехваткой памяти — можете попробовать воспользоваться атрибутом slots.
Здесь, когда мы объявляем атрибут slots, Python использует для хранения атрибутов не словарь, а маленький массив фиксированного размера. Это серьёзно сокращает объём памяти, необходимый для каждого из экземпляров класса. У применения атрибута slots есть и некоторые недостатки. Так, пользуясь им, мы не можем объявлять новые атрибуты, мы ограничены только теми, которые имеются в slots. Кроме того, классы c атрибутом slots не могут использовать множественное наследование.
Получаем ежедневные новости с помощью Python
Для реализации нам нужно установить библиотеки requests и BeautifulSoup.
pip install bs4
pip install requests
Подробный разбор и описание кода можно найти здесь.
Узнаём курс доллара при помощи Python в 2 строчки
Пакет forex-python
позволяет получать данные о курсе валют и конвертировать одну валюту в другую. Программа на картинке позволяет нам узнать курс доллара относительно многих других валют мира. Вместо "USD" можно вставить любую другую валюту и получить актуальное соотношение.
Senior-разработчик создал крутейший канал про SQL
Благодаря простым картинкам даже новичок научится разрабатывать приложения с использованием баз данных.
Присоединяйтесь: @SQL
Протоколы
Термины "протокол итератора" или "протокол дескрипторов" уже привычны и используются давно. Но теперь можно описывать протоколы в виде кода и проверять их соответствие на этапе статического анализа.
Протокол описывается как обычный класс, наследующийся от Protocol
. Он может иметь методы (в том числе с реализацией) и поля. Реальные классы, реализующие протокол могут наследоваться от него, но это не обязательно, как показано в примере.
Хоть это и не совсем интерфейсы, но все же классная штука. Еще важно, что протоколы, как и все остальные фишки аннотаций типов, используются в основном со статически типизированным mypy
.
#typing #аннотации
Создание функций на основе других с "замороженными" параметрами
Поговорим про очень важную функцию partial
из пакета functools
. Более подробно мы рассказываем про это в курсе, но сейчас дадим краткое описание работы.
Данная функция принимает в качестве первого аргумента любую другую функцию, а дальше параметры, которые будут автоматически переданы в эту функцию при вызове уже новой функции, которую вернёт partial
.
Например, можем создать функцию, которая умножает два числа, а потом "заморозить" один аргумент, как на картинке.
1. С чем предстоит работать:
Эмулирование зрителей на стримерские платформы с различной защитой(ютуб, твич, кик и подобные)
Опыт работы с сессиями, прокси, куками, обхода антифрода и клоудфлеера, токенами, апи социальных сетей, снифом приветствуется. Делаем на запросах.
2. На каком языке программирования будет основная часть работы:
Языки: Python | Node.js | C++ | С# уровня Middle или с опытом работы в накрутке
3. На какие сроки вам нужен исполнитель:
1-12 месяцев
4. Сколько готовы выплачивать исполнителю за работу:
От 500 до 5000$ за каждую площадку
Контакты:
Пишите в тг @TiKey_K
➡️ Использование библиотеки aiometer для конкурентного выполнения асинхронных задач
aiometer позволяет эффективно управлять количеством одновременно выполняемых асинхронных задач. Это полезно, когда нужно ограничить количество параллельно выполняемых задач, избегая перегрузки системы.•
aiometer — отличный выбор для случаев, когда нужно контролировать количество параллельных операций, например, при выполнении большого числа запросов к API.
🔗 Ссылочка на доку
Деструкторы
В дополнение к конструкторам в Python также существуют и деструкторы. В каждом конкретном классе деструктор можно переопределить с помощью метода __del__
, который вызывается автоматически при удалении объекта.
Переопределение деструкторов на практике встречается редко, но на случай каверзных вопросов на собеседованиях стоит знать об этой особенности.
Создание капчи
Напомним, что так называемая captcha нужна для того, чтобы определить, зашёл ли на сайт бот или человек и таким образом отсеять ненужный трафик.
В Python капчу реализовать можно довольно просто — с использованием пары модулей сначала создаётся картинка, затем сохраняется в определённый файл. Результат выполнения программы вы можете увидеть на картинке снизу.
Всего лишь 5% разработчиков получают зп 400к+ в РФ.
Причин очень много, но одна из главных — высокие доходы в АйТи не совместимы с отдыхом…
Для такой зарплаты нужно забить на личную жизнь. Днём работать, а всё свободное время тратить на изучение новых технологий, прохождение курсов и чтение книг.
Но есть ли другой путь?
Канал ML-инженера Олега Андриянова о том, как быстро расти в зарплате благодаря софт скиллам.
За 4 года в ИИ-разработке Олег вырос в доходах в 12.5 раз.
При этом продолжает качать и хард скилы, но не тратит на них всё свободное время.
Посты, которые будут вам полезны:
— какие 2 софт скилла помогают зарабатывать больше?
— как справляться со стрессом на работе, чтобы быть продуктивным?
— как гарантировано повысить себе зарплату?
— какой есть грязный трюк для повышения доходов?
Так что если вы хотите получать больше, подписывайтесь на канал Олега. И войдите в 5% золотых айтишников.
Метод compress()
Метод compress() модуля itertools создает итератор, который фильтрует элементы из данных s, возвращая только те, которые имеют соответствующий элемент, равный True или 1 в последовательности lst.
docstring
docstring — это строковый литерал, который по PEP должен быть сразу после определения названия для модуля, функции, класса или метода. Создаётся с помощью трех двойных кавычек.
В Python docstring игнорируются интерпретатором и не могут быть выполнены. Однако, когда вы добавляете docstring в модуль, функцию и так далее, эта строка становится специальным атрибутом, к которому можно получить доступ через __doc__
.
Присоединяйтесь к бесплатному мини-курсу «Симулятор профессии дата-сайентист»
За 3 дня с нуля создадите виртуального робота-помощника (как Siri, Олег или Маруся) и решите несколько типичных задач дата-сайентиста, чтобы понять, подходит ли вам это направление
А еще:
- поймете, какие навыки нужны для работы в Data Science
- познакомитесь с языком Python
- узнаете о библиотеках Pandas, Plotly, Numpy
- освоите основы машинного обучения
- поработаете с Google Colab
- напишете AI-driven прототип
Все участники получат подарки: чек-листы и гайды, и чтобы больше узнать о профессии, бессрочный доступ к курсу «Основы Python: пишем чат-бота»
Записаться на мини-курс и забрать подарки
В России можно посещать IT-мероприятия хоть каждый день: как оффлайн, так и онлайн
Но где найти единую "базу" ивентов? Чтобы "заглянул -> увидел все что есть -> выбрал -> пошел"?
🔥Советуем обратить внимание на канал, в котором публикуют анонсы вебинаров, хакатонов, конференций, мастер-классов, ивентов от гигантов индустрии и лучших специалистов по кодингу, дизайну, аналитике и т.д.
👍 Очень крутая вещь, где вы точно не пропустите ничего важного и интересного.
🗂 IT-мероприятия России / ITMeeting / IT events - подпишитесь, чтобы не пропустить свой ивент!
Как удалить пробелы из начала строки (из её левой части), из её конца (из правой части), или с обеих сторон строки?
Здесь нам пригодятся, соответственно, методы lstrip(), rstrip() и strip().
Главная конференция по бизнесу в Telegram
31 октября в Москве пройдёт первая конференция по Telegram от крупнейшего сервиса аналитики Telemetr. Топы Телеграм-рынка, маркетологи и представители бизнеса обсудят самые актуальные тенденции и перспективы развития платформы Telegram.
Присоединиться к мероприятию можно будет и онлайн. Тут найдёте всю информацию - https://telemetr.pro.
На конференции вас ждут:
- 20+ опытных спикеров
- 1000+ онлайн и офлайн участников
- две сцены
- нетворкинг активности
- лаунж зона
- вкусный фуршет
- яркое afterparty в PAPA Moscow
Спикерами главной сцены будут: Артемий Лебедев, руководитель Telemetr - Денис Ларионов, основатель агентства GoDigital - Сурен Альбертян, основатель Сидорин ЛАБ - Дмитрий Сидорин и многие другие!
За подробностями сюда - https://telemetr.pro
А купить билет со скидкой в 10% можно, использовав наш промокод - TMConf10
Купить билет - https://telemetr.pro
Тестирование на pytestpytest
— ближе по духу к Python нежели unittest
, который накладывает определенные обязательства при разработке тестов. Например, создание классов-наследников от TestCase или выполнение определенной процедуры запуска тестов.
При разработке на pytest
ничего этого делать не нужно. Вы просто пишете функции, которые должны начинаться с "test_" и используете assert, встроенные в Python.
Также он поддерживает запуск тестов на unittest
и nose
, то есть полная обратная совместимость с ними.
Функции только с позиционными параметрами
Если с помощью inspect
посмотреть на то, как объявлена встроенная функция float
, то увидим, что есть входной параметр x
и еще какой-то непонятный слэш.
Однако при попытке вызвать функцию и передать туда именованный аргумент, а не позиционный, получим исключение. А если передать аргумент, явно не указывая имя параметра, то все работает.
Такое поведение как раз задает тот слэш. Параметры, записанные до него, можно передать только как позиционные. После него – как угодно, все будет работать стандартно.
Поздравляем, вы на 1 шаг ближе к работе мечты 🥳
Осталось только прочитать этот пост, подписаться на канал и откликнуться на вакансию 😉
Avito Career — место, где Авито делится актуальными вакансиями и стажировками для Python-разработчиков.
Подписывайтесь, чтобы найти ту самую работу ✨
Что такое глубокая копия?
Глубокая копия используется для хранения значений, которые уже скопированы. Глубокая копия не копирует ссылочные указатели на объекты.
Она создает ссылку на объект, и новый объект, на который указывает другой, сохраняется. В отличие от неглубокой копии, изменения, внесенные в исходную копию, не повлияют ни на одну другую копию, использующую объект. Это значит, что они не привязаны.
3D визуализация на Python
Vpython — относительно простая библиотека для демонстрации физических явлений. В примере создаём вращающийся куб.
В начале программы создаём сам куб, задавая параметры, сохраняем его в переменную, а затем для вращения создаём бесконечный цикл. Документация:
https://www.glowscript.org/docs/VPythonDocs/index.html