Как стать автором
Поиск
Написать публикацию
Обновить
398.17

Python *

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

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

Что вернет операция 1 < 3 < 2?

Время на прочтение2 мин
Количество просмотров591
Ответ: False

Если предположить, что это выражение состоит из двух отдельных операций, то слева на право: 1 < 3 = True, True(понимаем 1) < 2 также долен вернуть True, но почему-то False.
Читать дальше →

PyQt: простая работа с потоками

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

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

Python-неизвестный

Время на прочтение4 мин
Количество просмотров27K
На Хабре уже есть несколько статей\переводов, в которых рассказывается о неизвестных фичах\тонкостях\возможностях Пайтона. Я буду пытаться не повторять их, а дополнять, но если уж так случилось, что вы это уже где-то видели — не огорчайтесь. Я уверен, что найдется что-то интересное и для вас.
Читать дальше →

Руководство: пишем интерпретатор с JIT на PyPy

Время на прочтение12 мин
Количество просмотров12K
Все исходные коды и примеры из этой статьи доступны здесь.

Когда я первый раз смотрел проект PyPy, мне потребовалось некоторое время, чтобы выяснить, что он из себя представляет. Он состоит из двух вещей:

— набор инструментов для написания интерпретаторов языков программирования;
— реализация Питона с применением этого набора инструментов.

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

Я взялся за это руководство для того, чтобы лучше понять как работает PyPy и что он из себя представляет. Предполагается, что вы очень мало знаете о PyPy, поэтому я начну с самого начала.

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

Настраиваем окружение на Mac OS и собираем автономное приложение с PySide/PyQt

Время на прочтение5 мин
Количество просмотров28K
image
Сейчас все удобнее становится использовать HTML и JavaScript в интерфейсах приложений. И именно такая задача недавно появилась передо мной, с одним важным условием — на выходе должно быть полностью standalone приложение, не требующее установки дополнительных библиотек и способное запуститься в обычном пользовательском окружения.

В силу своего природного обаяния в качестве основного языка был выбран Python + PySide c WebKit на борту, для сборки app-бандла использовался py2app.

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

Бесплатная отправка SMS от своего мегафоновского номера с помощью python-скрипта

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

Для чего это нужно?


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

Обычное применение

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

Необычное применение

Здесь варианты использования ограничены только вашей фантазией и умениями парсить нужные информационные потоки, например:
  • прогноз погоды
  • заголовки rss-ленты
  • твиттер-лента
  • данные по нагрузке вашего сервера
  • ?????
  • PROFIT!

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

Ускорение кода на Python средствами самого языка

Время на прочтение5 мин
Количество просмотров82K
Каким бы хорошим не был Python, есть у него проблема известная все разработчикам — скорость. На эту тему было написано множество статей, в том числе и на Хабре.

Что с этим можно сделать?

Еще немного о дескрипторах в Python

Время на прочтение3 мин
Количество просмотров19K
Не так давно на Хабре уже был перевод статьи Раймонда Хеттингера Руководство к дескрипторам. В этой статье я постараюсь рассмотреть вопросы, которые возникли у меня после прочтения. Будет немного примеров кода, собственно вопросов и ответов к ним. Для понимания того, о чем речь, вам нужно знать, что такое дескрипторы и зачем они.

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

Видеоуроки по Python от Khan Academy

Время на прочтение1 мин
Количество просмотров14K
Некоммерческая организация Khan Academy начала публиковать микролекции по языку программирования Python для начинающих. Первый урок посвящён написанию простой программки вычисления факториала с использованием цикла.



P.S. Khan Academy специализируется на массовом образовании. С 2006 года её основатель Салман Хан записал более 2300 микролекций в области науки и математики. По данным на июнь 2011 года, у канала Khan Academy на YouTube зафиксировано около 64 млн просмотров.

Khan Academy на YouTube

Объектное представление данных

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

Объектное предсталение данных


Добрый день. В этом блоге я хотел бы повести речь о представлении данных в виде набора однотипных объектов. Результат запроса к базе данных может быть представлен списком кортежей, либо в виде списка именованных последовательностей (словарей), которые, впоследствии, используются в приложении, а доступ к элементам одной последовательности происходит по индексу, либо по имени атрибута. Давайте попробуем в качестве результата выборки получить список объектов, обладающих:

  • Атрибутами, имена которых совпадают с наименованием полей таблицы (именем колонки в запросе)
  • Простыми методами обработки данных

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

Итак, приступим.
Читать дальше →

Руководство к дескрипторам

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

Краткий обзор


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

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

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

Парсинг на Pуthon. Как собрать архив Голубятен

Время на прочтение9 мин
Количество просмотров43K
Статья описывает разработку скрипта на языке Python. Скрипт выполняет парсинг HTML-кода, составление списка материалов сайта, скачивания статей и предварительную очистку текста статьи от «посторонних» элементов. Используется библиотеки urllib (получение HTML-страниц), lxml (парсинг HTML-кода, удаление элементов и сохранение «очищенной» статьи), re (работа с регулярными выражениями), configobj (чтение файлов конфигурации).

Для написания скрипта достаточно базовых знаний языка Python, навыков программирования и отладки кода.

В статье даются пояснения по применению библиотек на примере составления списка публикаций С.М. Голубицкого, приведена ссылка на работающий скрипт.
Читать дальше →

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

Вышел Tornado Web Server 2.0 RC

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

Основные изменения:


  • Автоматически добавляются escape-символы при выводе в шаблоны
  • Стандартная реализация AsyncHTTPClient теперь simple_httpclient.
  • Поддержка Python 3.2.


Минорные изменения:


  • Новые теги шаблонизатора:
    — {% autoescape ...%} управление добавлением escape — символов
    — {% raw… %} убрать escape-символы
    — {% module… %} для вызова UIModules
  • {% module Template(path, **kwargs) %} теперь может быть использовано для вызова другого шаблона с независимым пространством имен
  • Все вызовы IOStream callbacks теперь осуществляются напрямую в IOLoop через add_callback.
  • HTTPServer теперь поддерживает IPv6. Для отключения нужно передать параметр family=socket.AF_INET в HTTPServer.bind().
  • HTTPClient теперь поддерживает IPv6, если у запроса установлен параметр allow_ipv6=True
  • RequestHandlers теперь может использовать кодировки, отличные от utf-8 для параметра запроса путем переопределения decode_argument()
  • Улучшена производительность, особенно для приложений, использующих много IOLoop timeouts
  • HTTP OPTIONS метод теперь не требует XSRF token.
  • Вывод в JSON (RequestHandler.write(dict)) теперь устанавливает Content-Type application/json
  • вычисление Etag теперь может быть настроено или отключено путем переопределения RequestHandler.compute_etag
  • USE_SIMPLE_HTTPCLIENT больше не поддерживается, вместо него используйте AsyncHTTPClient.configure.

Берем на GitHub

Тестирование. Начало

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

Привет. В этой серии постов я попробую рассказать про тестирование кода на питоне, в частности проектов django. Мы рассмотрим модульное тестирование (юнит-тесты), статический анализ кода и некоторые подводные камни тестирования веб-сайтов.

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

Как применять Linux epoll в Python

Время на прочтение23 мин
Количество просмотров25K
В статье описывается:
  • Примеры использования блокирующих сокетов
  • Преимущества асинхронных сокетов и Linux epoll
  • Примеры асинхронного использования сокетов через epoll
  • Вопросы производительности
  • Исходный код
Читать дальше →

NumPy, пособие для новичков. Часть 1

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

Первая часть учебника рассказывает об основах работы с NumPy: создании массивов, их атрибутах, базовых операциях, поэлементном применении функций, индексах, срезах, итерировании. Рассматриваются различные манипуляции с преобразованием формы массива, объединение массивов из нескольких и наоборот — разбиение одного на несколько более мелких. В конце мы обсудим поверхностное и глубокое копирование.
Читать дальше →

Отрисовка графиков в Chaco

Время на прочтение43 мин
Количество просмотров5.2K
Сегодня расскажу вам о замечательной программе под названием Chaco, которую разрабатывает компания Enthought.

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



Так же, как и Mayavi умеет встраиваться в Wx и Qt (PyQt и PySide) приложения, дружит с Numpy-массивами.
Читать дальше →

PyCharm 1.5: свежий апдейт IDE для Python/Django

Время на прочтение1 мин
Количество просмотров5.4K
На этой неделе компания JetBrains выпустила очередной релиз PyCharm. Список новых фич на сей раз включает:
  • Поддержку языка SQL и интеграции с базами данных (просмотр структуры, просмотр и редактирование данных в таблицах, подсветка синтаксиса и автодополнение в SQL файлах и т.д.);
  • Поддержку работы с документацией (просмотр документации для библиотек во внешнем браузере, генерацию шаблонов docstrings, подсветку синтаксиса для reStructuredText и т.д.);
  • Поддержку отладки для шаблонов Django;
  • Новый рефакторинг Move Class/Function;
  • Как всегда, много мелких улучшений и багфиксов.

Попробовать PyCharm в течение 30 дней можно бесплатно. Для студентов, начиная с версии 1.2, доступна академическая лицензия всего за $29, а для разработчиков open-source проектов есть возможность получить лицензию бесплатно.

Скачать новую версию и узнать больше о новых фичах можно на сайте jetbrains.com.

PyGTK: потоки и магия обёрток

Время на прочтение9 мин
Количество просмотров5.6K
Всем хорош GTK+, но наблюдается большая проблема при работе с ним в многопоточных приложениях. Сам по себе GTK является thread-safe, но требуя принудительной блокировки со стороны пользователя. Вторая проблема заключается в том, что блокировка реализована через мутексы, и вы должны вызывать блокировку строго один раз, иначе ваш код «зависнет» на linux, прекрасно при этом работая на windows.
Как бороться?

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