Обновить
840.53

Python *

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

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

Графический интерфейс на Python за 5 минут

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

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

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

Библиотеки Python, которые можно использовать для графического интерфейса


По сути, есть 3 большие библиотеки Python для графического интерфейса; Tkinter, wxPython и PyQT. Рассматривая их, я не нашел там ничего из того, что мне нравится в Python. Библиотеки Python, как правило, очень хорошо абстрагируются от супер-технических моментов. Если бы мне нужно было работать с объектно-ориентированным программированием, я мог бы с таким же успехом загрузить Java или .Net.
Читать дальше →

4 крутых функции Numpy, которые я использую постоянно

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

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


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

Делаем адаптивную загрузку контента на сайте

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

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

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

Подборка @pythonetc, ноябрь 2019

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

Новая подборка советов про Python и программирование из моего авторского канала @pythonetc.

Previous publications



PATH — это переменная окружения, в которой хранятся пути, по которым ищутся исполняемые файлы. Когда вы просите оболочку выполнить ls, она сначала ищет исполняемый файл ls по всем путям, указанным в PATH.
Читать дальше →

Полезные советы по Python, которых вы ещё не встречали

Время на прочтение7 мин
Охват и читатели36K
Написано очень много статей, посвящённых интересным возможностям Python. В них идёт речь о распаковке списков и кортежей в переменные, о частичном применении функций, о работе с итерируемыми объектами. Но в Python есть гораздо больше всего интересного. Автор статьи, перевод которой мы сегодня публикуем, говорит, что хочет рассказать о некоторых возможностях Python, которыми он пользуется. При этом описания этих возможностей, подобного тому, которое приведено здесь, ему пока не встречалось. Возможно, что и вы о них тоже ещё нигде не читали.


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

Matlab vs. Julia vs. Python

Время на прочтение9 мин
Охват и читатели17K
Я использовал MATLAB более 25 лет. (А до этого я даже использовал MATRIXx, земля ему пухом.) Это не первый язык, на котором я научился программировать, но это тот язык, с которым я достиг математического совершеннолетия. Знание MATLAB было полезным для моей карьеры.

Тем не менее, невозможно игнорировать рост Python в научных вычислениях. MathWorks должен чувствовать то же самое: они не только добавили возможность вызывать Python напрямую из MATLAB, но и заимствовали некоторые его языковые функции, такие как более агрессивную передачу для компонентов бинарных операторов.

Наступил момент, когда я подверг сомнению мое постоянное использование MATLAB как в исследованиях, так и в преподавании. Тем не менее я столько вложил в материалы, что было трудно найти мотивацию, чтобы научиться чему-то новому.
Читать дальше →

Визуализация странных аттракторов в Plotly — это шедеврально

Время на прочтение10 мин
Охват и читатели17K
Поэзия — это очень красивый, зачастую глубокомысленный слог, которым мы не пользуемся в обыденной жизни, но так им любим наслаждаться. То же самое можно сказать и о математике. В фильме «Пи» главный герой называет математику «языком природы», а в фильме «Игры разума» главный герой говорит о ней, как об «особом виде искусства». Мы же, в обыденной жизни, можем напрочь забыть об этом.

Облик странных аттракторов необычен и притягателен даже в двумерном измерении. Plotly позволяет строить их в трех измерениях, причем он дает возможность очень легко получить именно 3D-модель, которую можно «вертеть» и сквозь которую можно «пролетать» — ощущение «прикосновения».

image

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

Сможет ли Julia побороть Python так же, как Python поборол Java

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

Язык программирования Python прошел большой путь с момента своего появления в 1990-х. Едва ли Гвидо Ван Россум знал, что Python станет одним из самых популярных языков в мире, в то время, когда он его разрабатывал. На сегодняшний день Python является одним из наиболее широко используемых языков программирования на планете и имеет множество различных применений. Будь то приложения корпоративного уровня, машинное обучение, модели искусственного интеллекта или работа в области Data Science, Python активно используется практически во всех процветающих отраслях и областях.

Текущий сценарий для Python


В мире более 8 миллионов разработчиков на Python, которые регулярно используют этот язык для самых разных целей. Благодаря своей гибкости и простой масштабируемости, Python уже стал предпочтительным языком для многих разработчиков. Это стало причиной, по которой Python смог обойти Java, которая долгое время была любимым языком у разработчиков. Но это также может быть связано с естественным процессом старения языка, с которым Java приближается к своему концу. Большинство новых языков предназначены для решения современных задач. Хотя языки, разработанные давно, наиболее эффективны для решения задач своего времени, им становится чрезвычайно трудно оставаться актуальными для меняющихся отраслей и сценариев.
Читать дальше →

Быстрый ENUM

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

tl;dr


github.com/QratorLabs/fastenum
pip install fast-enum

Зачем нужно перечисление (enum)


(если вы все знаете — опуститесь до секции «Перечисления в стандартной библиотеке»)

Представьте, что вам нужно описать набор всех возможных состояний сущностей в собственной модели базы данных. Скорее всего, вы возьмёте пачку констант, определенных прямо в пространстве имен модуля:
# /path/to/package/static.py:
INITIAL = 0
PROCESSING = 1
PROCESSED = 2
DECLINED = 3
RETURNED = 4
...

… или как статические атрибуты класса:
class MyModelStates:
  INITIAL = 0
  PROCESSING = 1
  PROCESSED = 2
  DECLINED = 3
  RETURNED = 4

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

Однако, и константа модуля, и класс со статическими атрибутами страдают от внутренней природы объектов Python: все они изменяемы (мутабельны). Можно случайно присвоить значение своей константе во время выполнения, а отладка и откат сломанных объектов — отдельное приключение. Так что вы можете захотеть сделать пачку констант неизменяемыми в том смысле, что количество объявленных констант и их значения, на которые они отображаются, не будут изменяться во время выполнения программы.
Читать дальше →

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

Время на прочтение5 мин
Охват и читатели204K
  1. Mall Customers Dataset — данные посетителей магазина: id, пол, возраст, доход, рейтинг трат. (Вариант применения: Customer Segmentation Project with Machine Learning)
  2. Iris Dataset — датасет для новичков, содержащий размеры чашелистиков и лепестков для различных цветков.
  3. MNIST Dataset — датасет рукописных цифр. 60 000 тренировочных изображений и 10 000 тестовых изображений.
  4. The Boston Housing Dataset — популярный датасет для распознавания паттернов. Содержит информацию о домах в Бостоне: количество квартир, стоимость аренды, индекс преступлений.
  5. Fake News Detection Dataset — содержит 7796 записей с разметкой новостей: правда или ложь. (Вариант применения с исходником на Python: Fake News Detection Python Project )
  6. Wine quality dataset — содержит информацию о вине: 4898 записей с 14 параметрами.

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

Инстанцирование в Python

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

Допустим, у вас есть класс Foo :


class Foo(object):
    def __init__(self, x, y=0):
        self.x = x
        self.y = y

Что происходит, когда вы создаёте его объект?


f = Foo(1, y=2)

Какой метод вызывается первым при этом вызове Foo? Большинство новичков, да и, возможно, немало опытных питонистов тут же ответят: «метод __init__». Но если внимательно приглядеться к сниппетам выше, вскоре станет понятно, что такой ответ неверен.


__init__  не возвращает никакого результата, а Foo(1, y=2), напротив, возвращает экземпляр класса. К тому же __init__ принимает self в качестве первого параметра, чего не происходит при вызове Foo(1, y=2). Создание экземпляра происходит немного сложнее, о чём мы и поговорим в этой статье.

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

Hack The Box — прохождение Smasher2. Flask, WAF и LPE через pwn драйвера

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

Данной статьей я начну публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье мы пореверсим библиотеку для python, обойдем WAF и проэксплуатируем уязвимость mmap.

Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)

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

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

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

14 open-source проектов для прокачки Data Science мастерства (easy, normal, hard)

Время на прочтение7 мин
Охват и читатели42K
Data Science для начинающих

1. Sentiment Analysis (Анализ настроений через текст)


image

Посмотрите полную реализацию проекта Data Science с использованием исходного кода — Sentiment Analysis Project в R.

Sentiment Analysis — это анализ слов для определения настроений и мнений, которые могут быть положительными или отрицательными. Это тип классификации, при котором классы могут быть двоичными (положительными и отрицательными) или множественными (счастливыми, злыми, грустными, противными ...). Мы реализуем этот Data Science проект на языке R и будем использовать набор данных в пакете «janeaustenR». Мы будем использовать словари общего назначения, такие как AFINN, bing и loughran, выполнять внутреннее соединение, и в конце мы создадим облако слов, чтобы отобразить результат.

Язык: R
Набор данных/Пакет: janeaustenR
Читать дальше →

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

Создаем структуру простого мультиплатформенного бота

Время на прочтение5 мин
Охват и читатели9.7K
Регистрация пользователей на мероприятия, автоматический поиск ответов в базе, общение с техподдержкой, обмен контактами — все это часть функций нашего бота Leader-ID. Он «живет» на трёх платформах: VK, Facebook Messenger и Telegram, при этом логика его работы пишется один раз на всех с использованием платформонезависимых абстракций. Такой подход позволяет быстро добавлять новые функции и шлифовать старые.



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

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

Простой классификатор P300 на открытых данных

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

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


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



Для того, чтобы заняться классификацией ЭЭГ, можно позвать друзей, написать игру про Енотов и Демонов в VR, записать собственные реакции и написать научную статью (об этом я расскажу как-нибудь в другой раз), но по счастью, учёные со всего мира уже провели некоторые эксперименты за нас и осталось только скачать данные.


Разбор способа построения нейроинтерфейса на P300 с пошаговым кодом и визуализациями, а также ссылку на репозиторий можно найти под катом.

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

Конвертация PNG в DDS в формате DXT5 и просмотр результатов на лету при помощи python

Время на прочтение3 мин
Охват и читатели5.3K
Если вы уверены, что понимаете чего ожидать от формата DXT5, то проверьте себя: в спойлере анимация — слева PNG картинка 4x4 пикселя, справа — преобразованная в DDS(DXT5)
Если вас это не удивит — смело проходите дальше.

Да, я точно знаю как происходит конвертация в DXT5.
image

Если вы искали инструмент или возможность на лету увидеть, что будет с вашим PNG изображением после преобразования в DXT5 — милости прошу в статью.
Заходи

Автоматизированное тестирование с Pytest

Время на прочтение7 мин
Охват и читатели24K
Перевод статьи подготовлен специально для студентов курса «Python QA Engineer».




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

Три метода Pandas, о которых вы, возможно, не знали

Время на прочтение3 мин
Охват и читатели27K
Автор статьи, перевод которой мы сегодня публикуем, говорит, что когда он узнал о тех методах библиотеки Pandas, о которых хочет тут рассказать, он почувствовал себя совершенно некомпетентным программистом. Почему? Дело в том, что ему, когда он до этого писал код, лень было заглянуть в поисковик и узнать, существуют ли некие эффективные способы решения некоторых задач. Как результат, он даже и не знал о существовании целого ряда весьма полезных методов Pandas. Он, не пользуясь этими методами, всё же смог реализовать необходимую логику, но это потребовало от него нескольких часов работы, это заставило его понервничать. И, конечно, он по ходу дела написал кучу ненужного кода. Эту статью он подготовил для тех, кто не хотел бы оказаться в его ситуации.


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

Разработка мобильных приложений на Python. Библиотека KivyMD

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

Приветствую! Сегодня речь снова пойдет о библиотеке KivyMD — наборе виджетов для кроссплатформенной разработки на Python в стиле Material Design. В этой статье я сделаю не обзор виджетов KivyMD, как в недавней статье, а, скорее, это будет материал больше о позиционировании виджетов. Что-то похожего на туториал по разработке мобильных приложений на Python для новичков здесь не будет, так что если впервые слышите о фреймворке Kivy, вряд ли вам будет все это интересно. Ну, а мы погнали под кат!

Модель эффективности медиа рекламы для интернет-магазинов

Время на прочтение7 мин
Охват и читатели4.2K
Мы в агентстве People & Screens много лет работаем с онлайн-бизнесами в качестве рекламного партнера. Когда у нас появилась идея оценить вклад медийной рекламы в продажи интернет-магазинов, она казалась нереализуемой и даже безумной. Как только мы поняли, что все элементы мозаики можно найти и сложить вместе, то решили попробовать. Первые гипотезы начали подтверждаться, вместе с компанией Data Insight мы углубились в эту историю и за несколько месяцев кропотливой работы создали такое исследование, которое, по сути, является прикладным рабочим инструментом – модель оценки эффективности рекламы в 12 товарных категориях e-commerce. В этой статье мы расскажем о результатах и используемых методах анализа.

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