Обновить
793.7

Python *

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

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

Python в Visual Studio Code: сентябрьское обновление расширения

Время на прочтение3 мин
Охват и читатели8.8K
Мы рады сообщить, что сентябрьское обновление расширения Python для Visual Studio Code уже доступно. Вы можете загрузить расширение Python из Marketplace или установить его прямо из галереи расширений в Visual Studio Code. Если у вас уже установлено расширение Python, вы также можете получить последнее обновление, перезапустив Visual Studio Code. Вы можете узнать больше о поддержке Python в Visual Studio Code в документации.

Это небольшой выпуск, в котором мы закрыли 35 проблем, в том числе улучшили Python Language Server, отладку ячеек Jupyter Notebook, а также обнаружение создания виртуальной среды. Полный список улучшений приведен в нашем  журнале изменений. Ну а в этой статье рассмотрим самые интересные обновления.

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

Атомный квест в Битцевском парке

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


В связи с повсеместным хайпом по поводу Чернобыля в начале лета (по крайней мере в среде ядерной энергетики), а также гремящих словах цифровизация и геймификация, мы в ИБРАЭ РАН решили создать некоторое подобие квеста-приложения в котором концептуально моделируется эксплуатация энергоблока атомной станции и провести его тестирование в Битцевском парке.
Читать дальше →

Изменение климата: анализируем температуру в разных городах за последние 100 лет

Время на прочтение4 мин
Охват и читатели61K
Привет, Хабр.

Про изменение климата сейчас не говорит только ленивый. И случайно найдя неплохой сайт с историческими данными, стало интересно проверить — как же реально менялась температура с годами. Для теста мы возьмем данные с нескольких городов и проанализируем их с помощью Pandas и Matplotlib. Заодно выясним, действительно ли челябинские морозы настолько суровы, и где теплее, в Москве или Петербурге.



Также обнаружилось еще несколько любопытных закономерностей. Кому интересно узнать подробности, прошу под кат.
Читать дальше →

Сравнение малопопулярных и не очень CLI-библиотек: cliff, plac, plumbum и другие (часть 2)

Время на прочтение12 мин
Охват и читатели4.8K
В экосистеме Python существует множество пакетов для CLI-приложений, как популярных, вроде Click, так и не очень. Наиболее распространённые были рассмотрены в предыдущей статье, здесь же будут показаны малоизвестные, но не менее интересные.


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

Путь к проверке типов 4 миллионов строк Python-кода. Часть 2

Время на прочтение8 мин
Охват и читатели6.4K
Сегодня публикуем вторую часть перевода материала о том, как в Dropbox организовывали контроль типов нескольких миллионов строк Python-кода.



Читать первую часть
Читать дальше →

Робот-тележка на ROS. Часть 5. Работаем в rviz и gazebo: xacro, новые сенсоры

Время на прочтение10 мин
Охват и читатели11K
Посты серии:
8. Управляем с телефона-ROS Control, GPS-нода
7. Локализация робота: gmapping, AMCL, реперные точки на карте помещения
6. Одометрия с энкодеров колес, карта помещения, лидар
5. Работаем в rviz и gazebo: xacro, новые сенсоры.
4. Создаем симуляцию робота, используя редакторы rviz и gazebo.
3. Ускоряемся, меняем камеру, исправляем походку
2. Софт
1. Железо

В прошлый раз удалось добиться следующих целей:

  • визуализировать робота, создав xacro-файл, содержащий urdf-описание робота;
  • создать два launch файла, один из которых позволяет разместить робота в редакторе-симуляторе Gazebo;
  • поуправлять роботом в симуляторе Gazebo с клавиатуры.

В этом посте оформим проект в виде модулей xacro, чтобы он стал более читаемым (ранее для наглядности мы затолкали все описание в один xacro файл). Добавим виртуальную видеокамеру и imu. Просмотрим как добавлять в gazebo посторонние предметы окружающего мира.

C/C++ из Python (C API)

Время на прочтение7 мин
Охват и читатели31K
main

Продолжаем тему как вызывать C/C++ из Python3. Теперь используем C API для создания модуля, на этом примере мы сможем разобраться как работает cffi и прочие библиотеки упрощающие нам жизнь. Потому что на мой взгляд это самый трудный способ.

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

Путь к проверке типов 4 миллионов строк Python-кода. Часть 1

Время на прочтение7 мин
Охват и читатели18K
Сегодня мы предлагаем вашему вниманию первую часть перевода материала о том, как в Dropbox занимаются контролем типов Python-кода.



В Dropbox много пишут на Python. Это — язык, который мы используем чрезвычайно широко — как для бэкенд-сервисов, так и для настольных клиентских приложений. Ещё мы в больших объёмах применяем Go, TypeScript и Rust, но Python — это наш главный язык. Если учитывать наши масштабы, а речь идёт о миллионах строк Python-кода, оказалось, что динамическая типизация такого кода неоправданно усложнила его понимание и начала серьёзно влиять на продуктивность труда. Для смягчения этой проблемы мы приступили к постепенному переводу нашего кода на статическую проверку типов с использованием mypy. Это, вероятно, самая популярная самостоятельная система проверки типов для Python. Mypy — это опенсорсный проект, его основные разработчики трудятся в Dropbox.

Dropbox оказалась одной из первых компаний, которая внедрила статическую проверку типов в Python-коде в подобном масштабе. В наши дни mypy используется в тысячах проектов. Этот инструмент бесчисленное количество раз, что называется, «проверен в бою». Нам, для того, чтобы добраться туда, где мы находимся сейчас, пришлось проделать долгий путь. На этом пути было немало неудачных начинаний и провалившихся экспериментов. Этот материал повествует об истории статической проверки типов в Python — с самого её непростого начала, которое было частью моего научного исследовательского проекта, до сегодняшнего дня, когда проверки типов и подсказки по типам стали привычными для бесчисленного количества разработчиков, которые пишут на Python. Эти механизмы теперь поддерживаются множеством инструментов — таких, как IDE и анализаторы кода.

Читать вторую часть
Читать дальше →

Играемся с комплексными числами

Время на прочтение3 мин
Охват и читатели14K
Привет!

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


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

Решение задания с pwnable.kr 24 — simple login. Наложение стекового фрейма

Время на прочтение3 мин
Охват и читатели2.1K
image

В данной статье решим 24-е задание с сайта pwnable.krи узнаем про наложение стекового фрейма.

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

  • PWN;
  • криптография (Crypto);
  • cетевые технологии (Network);
  • реверс (Reverse Engineering);
  • стеганография (Stegano);
  • поиск и эксплуатация WEB-уязвимостей.

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

Загрузка музыки ВКонтакте

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

Доброго времени суток всем.


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


Для работы нужно скачать модули vk_api и request!


Для начала подключим необходимые модули и объявим некоторые переменные:


import os
import pickle
import vk_api
import requests

from vk_api import audio

from time import time

vk_file = "vk_config.v2.json"
REQUEST_STATUS_CODE = 200 
path = 'vk_music/'
Читать дальше →

Как обработать большие датасеты в pandas. Работаем с базой ФИАС, используя python и 8Гб памяти

Время на прочтение6 мин
Охват и читатели18K
Особо представлять базу ФИАС нет необходимости:



Скачать ее можно перейдя по ссылке, данная база является открытой и содержит все адреса объектов по России (адресный реестр). Интерес к этой базе вызван тем, что файлы, которые в ней содержатся достаточно объемны. Так, например, самый маленький составляет 2,9 Гб. Предлагается остановиться на нем и посмотреть, справится ли с ним pandas, если работать на машине, располагая только 8 Гб оперативной памяти. А если не справится, какие есть опции, для того, чтобы скормить pandas данный файл.
Читать дальше →

Робот-танк на Raspberry Pi с Intel Neural Computer Stick 2

Время на прочтение7 мин
Охват и читатели18K
Вот и наступил новый этап в развии Raspberry-танка.

В предыдущей серии оказалось, что семантическая сегментация из коробки не по зубам Raspberry.

Мозговой штурм и комментарии позволили определить следующие направления развития:

  • обучить собственную E-net сеть под нужный размер картинок
  • передать запуск нейросети с самой Raspberry на специальную железку, из которых наиболее часто упоминался Intel Movidius (он же Neural Compute Stick aka NCS).

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

Несколько дней — и интеловская чудо-железка у меня в руках.

Она довольно большая, и в нижний USB разъем малинки ее не воткнешь. Учитывая, что правые USB порты были заслонены штативом камеры, а верхний левый занят GPS модулем, вариантов оставалось не то, чтобы много.

В итоге, GPS был посажен на кабель, переведен вниз, и кабель обернут вокруг штатива, а на его место зашел NCS.

На этом hardware часть была завершена.


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

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

Генератор простых арифметических примеров для чайников и не только

Время на прочтение6 мин
Охват и читатели15K
Привет!

В этой «статье», а вернее сказать очерке, покажу очень простой способ развлечься зная самые основы latex и python.



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

Очищаем папку с загрузками при помощи программы на Python

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

Введение


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

Идея данной программы пришла в момент, когда пытался найти ранее загруженный файл среди «помойки», образовавшейся в папке «Загрузки». Изображения, документы, архивы и видео с музыкой: разобраться в этой мешанине и отфильтровать файлы можно было бы конечно, но неохота из-за больших временных затрат. И я подумал о том, что неплохо иметь программу, которая сама разберёт папку «Загрузки» и распределит файлы по стандартным папкам системы «Изображения», «Документы», «Видео» и «Музыка», а ненужные файлы удалит. В итоге на свет появился Perfectionist Organizer, о котором я хотел бы рассказать. Сразу скажу, что это статья от новичка для новичков, потому опытные Python-программисты не найдут здесь ничего полезного (кроме возможности поковыряться в коде и указать на множество ошибок).
Читать дальше →

50 оттенков matplotlib — The Master Plots (с полным кодом на Python)

Время на прочтение39 мин
Охват и читатели502K
Те, кто работает с данными, отлично знают, что не в нейросетке счастье — а в том, как правильно обработать данные. Но чтобы их обработать, необходимо сначала проанализировать корреляции, выбрать нужные данные, выкинуть ненужные и так далее. Для подобных целей часто используется визуализация с помощью библиотеки matplotlib.



Встретимся «внутри»!
Читать дальше →

Как создать Python wrapper и не сойти с ума

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

Недавно на Хабре прочитал статью про очень полезный инструмент, и так как я уже давно искал какой-то проект, чтобы начать контрибьютить, решил посмотреть, что там есть на гитхабе и чем можно помочь. Одно из issue было на счет создания обертки (дальше буду использовать wrapper) для Cи-шной библиотеки. В тот момент я подумал "О, что-то интересное, уверен, это займет не больше часа". Как же сильно я ошибался.


В этой статье я решил показать не один путь для решения подобной задачи, а несколько разных вариантов. Я покажу варианты создания модулей на Pythonс компиляцией в С, использование маленькой самописной библиотеки С в Python и – последний вариант – использование большой C библиотеки в Python без боли и pxd файлов.

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

Задача: извлечь ключевые выражения из текста на русском языке. NLP на Python

Время на прочтение6 мин
Охват и читатели43K
Что было нужно в самом начале:

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

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

Сейчас, когда я пишу эту статью, сохранилась идея, но набор данных конечного результата сильно изменился:

  • выбираются не слова, а ключевые выражения и в том числе слова;
  • список ключевых выражений размечен 16-ю различными маркерами;
  • все слова текста (в том числе и не ключевые) лемматизированы – приведены в начальную форму или унифицированы под выведенный формат;
  • каждое слово в тексте имеет дополнительную аналитику, относящуюся к положению по тексту и числу повторений.

Результаты работы ПО nrlpk (Natural Russian Language Processing by the Keys) подготавливают данные для:

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

Качество

Открыть полный текст

C/C++ из Python (CFFI, pybind11)

Время на прочтение6 мин
Охват и читатели30K
main

Продолжаем тему как вызывать C/C++ из Python3. Теперь используем библиотеки cffi, pybind11. Способ через ctypes был рассмотрен в предыдущей статье.

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

Делаем домашнюю библиотеку с Notion и Python

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

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

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