Обновить
1024K+

Python *

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

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

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

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

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

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

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


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

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

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

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

Previous publications



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

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

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


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

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

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

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

image

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

Быстрый 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 мин
Охват и читатели214K
  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 мин
Охват и читатели45K

Допустим, у вас есть класс 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). Создание экземпляра происходит немного сложнее, о чём мы и поговорим в этой статье.

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

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
Читать дальше →

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

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

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


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



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


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

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

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

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


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

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

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

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

Клиентоориентированный Data Lake в игровой компании

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

Источник

Привет, Хабр! Меня зовут Максим Пчелин, и я руковожу разработкой BI-DWH в MyGames (игровое подразделение Mail.ru Group). В этой статье по мотивам нашего с Диной Сафиной выступления на HighLoad++ Moscow 2019 я расскажу о том, как и зачем мы строили клиентоориентированное DataLake-хранилище.

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

Elixir как цель развития для python async

Время на прочтение17 мин
Охват и читатели12K
В книге «Python. К вершинам мастерства» Лучано Рамальо описывает одну историю. В 2000 году Лучано проходил курсы, и однажды в аудиторию заглянул Гвидо ван Россум. Раз подвернулся такой случай, все стали задавать ему вопросы. На вопрос о том, какие функции Python заимствовал из других языков, Гвидо ответил: «Все, что есть хорошего в Python, украдено из других языков».

Это действительно так. Python давно живет в контексте других языков программирования и впитывает концепции из окружения: asyncio позаимствован, благодаря Lisp появились лямбда-выражения, а Tornado скопировали с libevent. Но если у кого и стоит заимствовать идеи, так это у Erlang. Он создан 30 лет назад, и все концепции в Python, которые сейчас реализуются или только намечаются, в Erlang давно работают: многоядерность, сообщения как основа коммуникации, вызовы методов и интроспекция внутри живой системы на продакшн. Эти идеи в том или в ином виде находят своё проявление в системах вроде Seastar.io.


Если не брать во внимание Data Science, в котором Python сейчас вне конкуренции, то все остальное уже реализовано в Erlang: работа с сетью, обработка HTTP и веб-сокетов, работа с базами данных. Поэтому Python-разработчикам важно понимать, куда будет двигаться язык: по дороге, которую уже прошли 30 лет назад.

Чтобы разобраться в истории развития других языков и понять, куда двигается прогресс, мы пригласили на Moscow Python Conf++ Максима Лапшина (erlyvideo) — автора проекта Erlyvideo.ru.

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

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

Точки входа в Python

Время на прочтение6 мин
Охват и читатели35K
Многие думают, что точки входа это такие инструкции в setup.py, которые позволяют сделать пакет доступным для запуска из командной строки. Это, в целом, верно, но возможности точек входа не ограничиваются этим.

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



Осторожно: специфический юмор далее по тексту.
Читать дальше →

10 хитростей Python, о которых полезно знать

Время на прочтение6 мин
Охват и читатели37K
По данным StackOverflow Python — это самый быстрорастущий язык программирования. Например, в одном из отчётов Forbes речь идёт о том, что использование Python выросло на 456%. Python применяется в Netflix, в IBM, и ещё в тысячах компаний по всему миру. Давайте не забывать и о Dropbox. Сервисы этой компании тоже написаны на Python. В соответствии с исследованием Dice, знания в области Python весьма востребованы в наши дни, а индекс популярности языков программирования говорит о том, что Python — это сегодня самый популярный язык в мире. Если сравнить Python с другими языками, то окажется, что у него есть следующие сильные стороны:

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


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

Если данные не помещаются в память. Простейшие методы

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

Самка трубкозуба с детёнышем. Фото: Scotto Bear, CC BY-SA 2.0

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

Проблема в нехватке памяти. Если у вас 16 гигабайт ОЗУ, вы не сможете туда загрузить стогигабайтный файл. В какой-то момент у ОС закончится память, она не сможет выделить новую, и программа вылетит.

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

Самый полезный модуль стандартной библиотеки Python, о котором все постоянно забывают

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


В Python много отличных доступных «из коробки» модулей. Один из самых полезных — collections. Он содержит «специализированные типы для создания контейнеров», являющихся альтернативами универсальным dict, list, set и tuple. Ниже мы рассмотрим три содержащихся в модуле класса, с которыми большинство питонистов сталкивались, но постоянно забывают применять на практике.

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

Kivy. Сборка пакетов под Android и никакой магии

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

Во вчерашней статье Python в Mobile development, в которой речь шла о библиотеке KivyMD (коллекции виджетов в стиле Material Design для использования их в кроссплатформенном фреймворке Kivy), в комментариях меня попросили рассказать о процессе сборки пакета для платформы Android. Для многих этот процесс, к сожалению, был и остается чем-то из ряда магического шаманства и не подъёмным для новичков делом. Что ж, давайте разбираться, так ли на самом деле все сложно и действительно ли я маг и волшебник…
Читать дальше →

Как сделать бота, который превращает фото в комикс: пошаговая инструкция для чайников

Время на прочтение5 мин
Охват и читатели21K
Часть первая, дополненная.
Котаны, привет.
Я Саша и я балуюсь нейронками.

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

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

Инструкций для чайников, вроде меня.
Сегодня мы выберем архитектуру нашей нейросети, проверим ее и соберем свой первый набор данных для обучения.

Выбор архитектуры


После относительно успешного запуска selfie2anime бота (использующего готовую модель UGATIT), мне захотелось сделать то же самое, но свое. Например, модель, превращающую ваши фото в комиксы.

Вот несколько примеров из моего photo2comicsbot, и мы с вами сделаем нечто подобное.
Читать дальше →

Python в Mobile development

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


Ни для кого не секрет, что область применения Python довольно широка: начиная от web-технологий, игровой индустрии и заканчивая проектами NASA. Python работает практически везде: от карманных компьютеров и смартфонов до серверов сети и практически на всех известных платформах, таких как Windows, Linux/UNIX, macOS, Palm OS, Raspberry PI и так далее. Благодаря фреймворку Kivy в 2011 году Python освоил и мобильные платформы в плане разработки приложений под iOS и Android, а в 2015 с помощью библиотеки KivyMD Python научился использовать Material Design.