Обновить
1024K+

Python *

Высокоуровневый язык программирования

716,81
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Автоматизируем все с помощью Python: 10 процессов, которые можно сделать лучше

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели70K

Перевод и адаптация статьи Analytics Vidhya выполнены ProductStar специально для Хабра

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

Читать далее

Сравнение производительности dict() и {} в Python

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели19K

Какое-то время назад, во время разбора кода, мы обсудили выбор dict() вместо {} в новом коде на Python. Коллега утверждал, что dict() более читаем и чётче выражает цель, поэтому следует предпочесть его. Меня это не убедило, но в тот момент контраргуентов не нашлось, поэтому я воздержался.

Это заставило меня задуматься: в чём разница между типом dict и литеральным выражением {}?

Давайте изучим этот вопрос.

Читать далее

По какому пути пойти начинающему программисту: Python vs Java

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели30K

Во всемирном рейтинге Tiobe язык программирования Python занимает первую строчку с долей около 13,97% по состоянию на январь 2024 года. Рост за 20 лет почти в 12,7 раза — согласитесь, впечатляет. Java тоже уверенно входит в ТОП-5. Если учесть сложность освоения C++, именно между Java и Python обычно выбирают начинающие программисты. Мы решили сравнить эти популярные языки и дать несколько полезных рекомендаций, чтобы выбор между курсами Java и Python был осознаннее.

Читать далее

Python-волшебство: как магические методы облегчают жизнь программиста

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели28K

Привет, друзья! Сегодня я расскажу вам об удивительном мире магических методов в Python. 🎩 Если вы когда-нибудь задавались вопросом, что стоит за волшебством работы объектов в этом языке программирования, то сейчас мы вместе разгадаем эту загадку!

Читать далее

Как нуб писал софт при помощи ChatGPT

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели42K

Всем привет! Начну с небольшой предыстории. Заранее прошу прощения, если эта история вызовет у кого-то скуку или негатив. Здесь будет описываться опыт программирования человеком, который абсолютный ноль в этом. Надеюсь, кого-то это даже позабавит.

Читать далее

Учимся создавать простых ботов или туториал по библиотеке TeleBot

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели154K

Начнем с того, что библиотек для разработки телегам-ботов на Python несколько, я упомяну основные три. В первой части статьи будет небольшой обзор этих библиотек (примеры кода тут будут для красоты, не пугайтесь, ниже будет пошаговый Гайд по одной конкретной библиотеке), потом комментарий о том, какую стоит выбрать для разработки конкретно своего бота и подробное руководство для новичков по разработке бота с разбором каждой строчки кода.

Бегу изучать ботов

Распознавание алфавита глухонемых с помощью нейронной сети

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели6.3K

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

Первоначальная задумка была yolov5 + сверточная сеть. 

Некоторые буквы алфавита динамические, например «б», «д», «з» , «й» и т.д. поэтому на первом этапе пришлось откинуть некоторые буквы, кстати буквы «ё» вообще нет в алфавите. Для упрощения демонстрации были добавлены жесты «spoke» и средний палец. Средний палец уж обязательно кто-нибудь покажет в камеру ;) 

Читать далее

Компилятор за выходные: лексер и парсер

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели27K

Продолжаем разговор. На прошлой неделе я пообещал за выходные написать компилятор из простенького мной придуманного языка в ассемблер. В назначенное время уложился, и компилятор даже вроде работает, см. заглавную картинку. Теперь дело за малым, потихоньку причесать и стройно изложить. В прошлый раз я рассказал про синтаксические деревья и показал простейший транслятор в питон (по факту, обычный pretty print дерева). Но если в предыдущей статье я синтаксическое дерево строил вручную, то сегодня всё же будем автоматизировать процесс.

Сегодня я публикую две статьи разом, поскольку по дороге меня довольно круто занесло, и получился небольшой спин-офф. Очень рекомендую к прочтению :)

Ну а тема этой статьи - автоматическое построение синтаксического дерева aka лексер и парсер.

Читать далее

Телеграм-каналы посвященные Python, от сложных книг для сеньоров до мемов про разработку и вакансий. Январь 2024

Время на прочтение2 мин
Охват и читатели16K

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

Итак поехали:

Обучение

Читать далее

Как deep learning помогает в разработке персонализированной терапии рака?

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели2.2K

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

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

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

Давайте вместе взглянем на возможность изменения стратегии борьбы с раком и наступления новой эры в медицинских исследованиях!

Читать далее

Отправляем и принимаем SMS с помощью SIM868 и Repka Pi

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели9.2K

В этой статье мы продолжим рассказ об использовании модуля GSM/GPRS/GNSS Bluetooth HAT, созданного на базе SIM868, для беспроводной передачи данных в виде СМС-сообщений через Российский одноплатник Repka Pi. Такой способ даже в наше время актуален, когда нужно управлять автоматикой или другими устройствами, когда 2G/3G/4G и даже GPRS не позволяет это делать из за удалённости/помех или по иным причинам и важно обеспечить высокую надёжность управления.

Это третья статья данного цикла и из первой статьи вы узнали, как с помощью упомянутого модуля обмениваться данными между микрокомпьютером Repka Pi с JSON-сервисом, доступным в интернете, по каналу GPRS. Вторая статья рассматривает такой обмен глубже, на уровне AT-команд, передаваемых в модуль через UART.

Теперь настала очередь рассказать об отправке и приеме коротких текстовых сообщений SMS (Short Message Service). Этот канал передачи данных пригодится, например, в тех случаях, если в месте расположения вашего оборудования недоступен ни WiFi, ни GPRS.

Сообщения SMS можно передавать в текстовом режиме, а также в так называемом режиме PDU (Protocol Data Unit). В первом случае длина сообщения не может превышать 160 байт, и в нем не должно быть символов кириллицы. Пользоваться режимом PDU сложнее, но в нем нет этих недостатков.

Далее мы рассмотрим работу в обоих режимах как с помощью Python и библиотеки RoverConnect, так и через AT-команды.

Вы научитесь получать список сообщений, кодировать и раскодировать сообщения PDU вручную, а также с помощью специально предназначенных для этого онлайн-сервисов, удалять сообщения и выполнять другие операции с SMS с помощью AT-команд.

Читать далее

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

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели32K

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

Эта дилемма определяет, насколько хорошо модель будет работать на реальных данных.

Переобучение и недообучение – это Сцилла и Харибда в ML, между которыми нужно лавировать. С тех давних времен появилось множество методов для решения этой проблемы. Рассмотрим их кратко.

Читать далее

Python и чистая архитектура…

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели48K

Всем привет! Сегодня я хочу поделиться своими опытом разработки на различных языках программирования и размышлениями касаемо проектирования серверных приложений. Речь пойдет про много обсуждаемую в последнее время чистую архитектуру в рамках языка python. Казалось бы, по заветам Роберта Мартина мы не должны зависеть от инструмента(зачастую под этим понимают фреймворк или библиотеку), однако это порождает множество ошибок и просто небольших неточностей в проектировании сервисов и даже выборе языка программирования.

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

Читать далее

Ближайшие события

У меня зазвонил Репка-фон. Делаем телефон на базе Repka Pi 3 с применением модуля SIM868

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели11K

Делаем программно-управляемый телефон или даже узел связи на базе одноплатного компьютера Repka Pi и модуля платы функционального расширения для GSM связи.

Просто поражают возможности одноплатных компьютеров в формфакторе Raspberry за счёт применения с использованием их 40 pin разъёма, поддерживающего все наиболее популярные промышленные интерфейсы. Становится интересным пробовать решать разные задачи такого типа со ставшими доступными уже год назад Российскими одноплатниками Repka Pi, разработанными на основе китайской элементной базы, но разработанные и производимые уже в России и имеющие хорошую поддержку, что сильно меняет и расширяет возможности применения и получения ответов на возникающие вопросы, так как работы с такими задачами часто сопряжена с возникающими техническими вопросами.

Реализация телефонной связи и радиоуправление - это ооооочень интересные возможности, дающие много простора для решения различных задач по автоматизации процессов в рамках своих проектов, как DIY, так и вполне промышленных задач. Учитывая, что в Репке за последнее время добавлена возможность работать с CAN интерфейсов и I2S, то круг задач и поле для фантазии становятся практически не ограниченными.

Это четвертая статья серии, посвященной модулю GSM/GPRS/GNSS Bluetooth HAT. В этой статье рассмотрим как добавить в ваше IoT-устройство или другое оборудование функции мобильного телефона. Ранее мы рассматривали как принимать и отправлять сообщения и многое другое и вот настало время для реализации функционала полноценной телефонной голосовой связи.

Настало время превратить модуль GSM/GPRS/GNSS Bluetooth HAT, созданный на базе SIM868, в самый настоящий телефон, способный звонить и принимать звонки. Мы расскажем о том, как это можно делать из программы, составленной на языке Python, а также опишем соответствующие AT-команды. Вы проверите их в работе с помощью терминала minicom.

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

Читать далее

Подручный для бизнеса

Время на прочтение10 мин
Охват и читатели3.1K

В статье рассказываем про разработку решения, которое помогает руководителям, продуктовым менеджерам и аналитикам искать точки роста и скрытые закономерности в продукте. Сервис принимает на вход описание продукта, бизнес-процесса или системы в табличном виде, а на выходе отдает набор гипотез — утверждений о данных, выраженных в виде текста и графиков. Конечная цель — создать полноценный помощник бизнесу.

Читать далее

Делаем addon для Blender

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели11K

Люблю Blender. Он мощный, а в последних версиях красивый! А ещё он бесплатный. И даже становится удобнее. Но, если посмотреть на то, сколько вопросов в интернете про то, как сделать что-то вполне тривиальное, начинаешь понимать, что до реального удобства там ещё далеко. С последними версиями эти вопросы становятся менее актуальными, потому что часть этих проблем уже кто-то решил за вас, написав аддон, который и только ждет что бы его активировали!

А что делать, если руками никак, а нужного функционала нет? Написать свой аддон!

Читать далее

CI/CD в каждый дом: сборочный цех базовых docker-образов

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели19K

Привет, Хабр.

Последнее время DevOps и CI/CD де-факто стали повсеместным стандартом независимо от размера команды, в интернетах хватает статей, почему это важно, в чём собственно идея, полезных практик и других материалов. Я же решил подойти с несколько другой стороны и максимально доступным языком на практических примерах рассмотреть отдельные задачи и их решения в рамках концепции.

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

Кому, собственно, это может пригодиться? Я бы сказал, что почти кому угодно, кто хочет организовать ту компоненту CI/CD, которая отвечает за построение и релизный цикл базовых образов внутри инфраструктуры вашей компании или даже персональных проектов (зародился он именно в процессе приведения в порядок моих пет-проектов).

Какой практический пример может быть без публичного репозитория с MIT-лицензией? Если вам не интересно читать статью, то можно прямо из превью перейти по ссылке и напитаться кодом. Репозиторий же можно копировать как целиком, так и кусками, буду только рад, если он кому-нибудь пригодится. На любые вопросы — готов ответить в комментариях или issues.

Читать далее

Векторизация изображений. Как создать алгоритм поиска похожих изображений на Python

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели20K

Многочисленные исследования ученых доказывают, что около 90% информации человек воспринимает через зрение. Изображения являются одним из самых богатых источников информации, которую можно использовать для разнообразных задач, включая классификацию, детекцию объектов, ранжирование изображений, поиск по изображениям и генерацию текстовых описаний. 

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

В мире есть много вещей, которые интуитивно понятны и очевидны для нас. Например, если перед нами два похожих цветка, мы можем определить их принадлежность одному виду, даже не зная названий этих растений. Этот навык позволяет нам распознавать объекты и определять их в группы. Разумеется, подобные алгоритмы уже давно существуют в современных поисковиках Google, Яндекс и прочих. Но что, если вы проектируете обособленную систему с собственной базой изображений одной или нескольких конкретных тематик и вам необходим функционал поиска похожих изображений?

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

Читать далее

Простое внедрение аннотаций статистической значимости

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели3K

Привет, Хабр!

Сегодня с вами участница профессионального сообщества NTA Яруллина Ляйсян.

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

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

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

Узнать больше

Аутентификация, авторизация пользователей и единый вход (SSO) с использованием Django

Уровень сложностиПростой
Время на прочтение24 мин
Охват и читатели40K

В этой статье исследую технологию SSO. Начинаю с разбора концепций аутентификации и авторизации. Рассматриваю как они работаю в контексте Django.

После прохожу путь от описания как работает SSO простыми словами, до разбора протоколов используемых в SSO.

В итоге делаю реализацию SSO с Django, объединять Django и Keycloak.

Читать далее