Обновить
492.44

Python *

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

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

Почему нельзя перевернуть строку с флагом-эмодзи?

Время на прочтение11 мин
Количество просмотров7.7K
Каким, по-вашему, будет результат выполнения следующего кода на Python?


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

Вот как я рассуждал, когда впервые увидел этот вопрос:

  • Строкаflag содержит один символ.
  • [::-1] переворачивает строку flag.
  • Строка, обратная строке с одним символом, будет такой же, как и исходная.
  • Следовательно, reversed_flag должна быть равна "".
Читать дальше →

Книга «Большая книга проектов Python»

Время на прочтение6 мин
Количество просмотров26K
image Привет, Хаброжители! Вы уже освоили основы синтаксиса Python и готовы программировать? Отточите свои навыки на самых интересных задачах — графике, играх, анимации, расчетах и многом другом. Вы можете экспериментировать, добавляя к готовым проектам собственные детали.В 256 строк кода поместится все — «винтажная» экранная заставка, забег улиток на скорость, рекламный заголовок-приманка, вращающаяся спираль ДНК и так далее. Добавьте к этому пару строк своего кода, и вы сможете делиться собственными уникальными проектами в интернете.

ЧТО ВНУТРИ?
• «виселица», блек-джек и другие игры, в которые можно играть самому или с друзьями;
• имитационные модели лесных пожаров, бросков игральных костей и японских счетов-абаки;
• анимированные изображения аквариума, вращающегося куба и логотипа DVD, отскакивающего от краев экрана;
• трехмерная «бродилка» по лабиринту;
• криптография, шифры Виженера и ROT13, позволяющие надежно спрятать ваш текст.
Читать дальше →

30 лучших Python-проектов на GitHub на начало 2022 года

Время на прочтение9 мин
Количество просмотров64K

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

UPD: добавили ссылки.

Читать далее

Как перестать жить и начать беспокоиться о потреблении памяти

Время на прочтение5 мин
Количество просмотров7.3K

Когда пишешь на Python, редко задумываешься, что происходит под капотом. С одной стороны, это ускоряет разработку, но, с другой, становится причиной низкой производительности и ошибок Out of memory на больших объёмах данных. Здесь мы рассмотрим несколько приёмов, как избежать подобных проблем, а в конце сравним производительность разных решений (в том числе посоревнуемся с однострочником на bash).

Читать далее

9 причин использовать dataclasses в Python

Время на прочтение8 мин
Количество просмотров54K

Начиная с версии 3.7 в Python представлены dataclasses (см. PEP 557), новый функционал, определяющий классы, содержащие и инкапсулирующие данные.

Недавно я начал использовать этот модуль в нескольких Data Science-проектах, и мне понравилось. Навскидку этому есть две причины:

Меньше шаблонного кода;

Лучшая читабельность и более простая поддержка кода.

Читать далее

Дополняемый калькултор

Время на прочтение7 мин
Количество просмотров4.9K

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

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

Начнём с самого простого - интерфейса. Для его создания нам понадобится библиотека PyQt5 и приложение Qt Designer.

Библиотека устанавливается всем известным способом - через pip в командной строке.

Here we go!

Разделяй и властвуй или как спасти оперативку

Время на прочтение3 мин
Количество просмотров3.2K

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

Поглядим!

Портируем код C/C++ на Python

Время на прочтение4 мин
Количество просмотров30K

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

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

Читать далее

Как мы преуспели на международном конкурсе по выращиванию цифрового салата

Время на прочтение13 мин
Количество просмотров3.2K

Настоящее всё больше походит на то, что некогда представлялось фантастикой. Меня зовут Павел Дудукин, руководитель Data Science-направления в Центре развития финансовых технологий (ЦРФТ) Россельхозбанка, и в этой статье расскажу, как мы вышли в финал международного конкурса Autonomous Greenhouse Challenge и что нас ждет дальше. 

Объединённая команда Россельхозбанка (РСХБ) и Московского физико-технического института (МФТИ) приняла участие в хакатоне Autonomous Greenhouse Challenge в 2021 году. Там собрался народ, заинтересованный в автоматизации тепличного выращивания сельхозкультур. Наша команда заняла второе место, уступив лишь объединённой команде университетов из Китая. Мы опередили участников из Стэнфордского университета, MIT, международного концерна BASF, Технического университета Мюнхена и др.

Интересно, что смогла придумать наша команда? Тогда добро пожаловать в нашу теплицу.

Перейти в теплицу

Ирина — опенсорс русский голосовой помощник. Offline-ready

Время на прочтение9 мин
Количество просмотров66K

- Ирина, таймер...
- Ставлю таймер на пять минут.

Вполне себе обыденная история из моего быта. Я таки сделал собственного автономного голосового помощника.

TL;DR> Ирина вполне неплохо работает дома 24x7.

Потребуется установить Python 3.5+ и зависимости через pip (немного знаний Python).

Скиллы "из коробки": таймер, погода, контроль медиа (громче/тише/дальше), контроль плеера MPC-HC, запуск медиа из папки, расписание ближайших электричек, "подбрось кубик/монетку".

Плагинами добавляются: другие скиллы, Text-to-Speech и Speech-to-Text движки.

Интересно? Поехали >

Руководство по распознаванию эмоций на изображении с использованием Python

Время на прочтение5 мин
Количество просмотров14K

Построим алгоритм распознавания эмоций (Face Expression Recognition), который работает с изображениями.

Посмотрим, что получилось...

Zython (python-wrapper для minizinc) после года разработки

Время на прочтение3 мин
Количество просмотров4.7K

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

В выпуске в январе 2021 года zython поддерживал объявление переменных и параметров, массивы, все типы решения (удовлетворение, максимизация, минимизация), множество предопределенных операций и ограничений (и, конечно, CI). Он мог решить ряд моделей, некоторые из которых были указаны в документации.

Но также в zython отсутствовали некоторые функции minizinc: поддержка вещественного типа (float), а так же множеств и типов перечеслений (enum). Я начал с поддержки float.

Читать далее

Cимбиоз цифр и искусства (часть 2)

Время на прочтение6 мин
Количество просмотров1.2K

В продолжении поста о создании алгоритма распознавания картин художников, хочу поделиться одной мыслью. Искусственный Интеллект как я его всегда представлял, являлся неким разумом, рациональной машиной по разрешению заданных вопросов и задач, заданных человеком. Будь то скрипт с исходными данными, или же голосовой помощник, он готов дешифровать и анализировать входящую информацию и выдавать ответ, даже если он в принципе неверный. Просто статистически данный ответ являлся наиболее верным за определённый отрезок времени (массив данных). Т.е. в большинстве алгоритмов главенствует системный подход к обработке данных (по аналогии, по логике, по большинству совпадений и т.д.). Как-бы я обрадовался если увидел где-нибудь "нелогичный" нерациональный ИИ-помощник, который выдавал странный, но главное правильный вариант из множества возможных, так сказать, попадал бы в "яблочко". К примеру, хотел бы я посмотреть вечером фильм,но, и чтобы этот фильм мне точно понравился бы. Задаю вопрос онлайн-помощнику, и что он выдаёт? Он выдаёт то, что смотрели и лайкали множество людей до этого, или он выдаёт высокорейтинговое кино определённого жанра, который я задал, но не имеющего ничего общего с тем, что мне действительно по душе. Я, конечно, знаю, какие фильмы мне пришлись "по душе". Лезу в поисковик, и набираю фильм наподобие... или фильмы похожие на... после чего вижу три-четыре портала с бесконечными списками фильмов. Вхожу и обнаруживаю, что эти фильмы, во первых далеки друг от друга по своей сути, и во вторых они может мне и понравились бы мне, но с совсем другой стороны, как будто я увидел их случайно щёлкая пультом ТВ и решил остановиться на них.

Далее: Тест модели распознавания искусства

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

Нахождение длительности временных интервалов в Python

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



А именно, здесь мы коснёмся следующих вопросов:

  • Как пользоваться Python-модулем datetime для работы с датой и временем.
  • Что собой представляют объекты timedelta и что они могут дать программисту.
  • Как вычислять продолжительность временных интервалов, выражая результат в разных единицах измерения.
Читать дальше →

Максимально просто о распознавании речи при помощи NeMo

Время на прочтение10 мин
Количество просмотров21K

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

Читать далее

Книга «Глубокое обучение с подкреплением: теория и практика на языке Python»

Время на прочтение9 мин
Количество просмотров7.1K
image Привет, Хаброжители! Глубокое обучение с подкреплением (глубокое RL) сочетает в себе два подхода к машинному обучению. В ходе такого обучения виртуальные агенты учатся решать последовательные задачи о принятии решений. За последнее десятилетие было много неординарных достижений в этой области — от однопользовательских и многопользовательских игр, таких как го и видеоигры Atari и Dota 2, до робототехники. Эта книга — введение в глубокое обучение с подкреплением, уникально комбинирующее теорию и практику. Авторы начинают повествование с базовых сведений, затем подробно объясняют теорию алгоритмов глубокого RL, демонстрируют их реализации на примере программной библиотеки SLM Lab и напоследок описывают практические аспекты использования глубокого RL. Руководство идеально подойдет как для студентов, изучающих компьютерные науки, так и для разработчиков программного обеспечения, которые знакомы с основными принципами машинного обучения и знают Python.
Читать дальше →

5% из 666 репозиториев Python содержат ошибки из-за запятых (в том числе Tensorflow, PyTorch, Sentry и V8)

Время на прочтение3 мин
Количество просмотров5.9K
Мы выяснили, что в 5% из 666 исследованных нами репозиториев Python с открытым исходным кодом на GitHub есть три бага, вызванных ошибочным использованием запятых.

Слишком мало запятых


Случайно пропущенная запятая в строке списка/кортежа/множества, приводящая к ненужной конкатенации строк.

Читать дальше →

RuCLIP tiny — быстрее, чем вы думаете

Время на прочтение2 мин
Количество просмотров4.8K

Совсем недавно компания Сбер представила ряд, адаптированных под русский язык, моделей машинного обучения под названием RuCLIP. Суть их работы заключается в возможности сравнения схожести текстового описания и изображения. Рассматривая результаты тестирования, мы заметили, что их модели довольно большие (150+ миллионов параметров) и при этом занимают довольно много места, связи с чем решили сделать свою маленькую, быструю и масштабируемую версию под названием RuCLIP tiny.

Читать далее

Как выглядит рельеф Марса? Выясняем с помощью Python

Время на прочтение9 мин
Количество просмотров7.3K

К старту флагманского курса по Data Science делимся визуализациями марсианского ландшафта на основе изображений, полученных благодаря беспилотным полётам над поверхностью планеты. За подробностями приглашаем под кат.

Читать далее

О хороших практиках построения инфраструктуры ML-моделей

Время на прочтение14 мин
Количество просмотров6.2K
Не все дата-сайентисты умеют хорошо писать код. Их этому не учили. Также их не учили писать веб-сервисы, и они могут забывать, что код должен быть проверен. Дата-сайентисты — не разработчики, от них ждут высоких метрик и решения поставленных задач, а не умения писать модульные тесты и следить за кодом. По крайней мере, им это не прививают. Не говоря уже о том, что они не работают с Kubernetes и не пишут для него Helm charts.

Но нам с командой дата-сайентистов пришлось это все освоить и запустить. Меня зовут Дмитрий Аникин, в «Лаборатории Касперского» я занимаюсь оптимизацией внутренних бизнес-процессов со стороны Data Science. Хочу рассказать, какие проблемы у нас возникали на пути нашей модели — от простого артефакта до самостоятельного сервиса — и как мы их решили, освоив все несвойственные дата-сайентистам процессы. Как справедливо замечено в нашем самопредставлении, именно в таких моментах — весь драйв!



Всю эту историю расскажу на примере живого проекта MDR (Kaspersky Managed Detection and Response).
Читать дальше →

Вклад авторов