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

Python *

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

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

Заметки об объектной системе языка Python ч.1

Время на прочтение8 мин
Количество просмотров67K
Несколько заметок об объектной системе python'a. Рассчитаны на тех, кто уже умеет программировать на python. Речь идет только о новых классах (new-style classes) в python 2.3 и выше. В этой статье рассказывается, что такое объекты и как происходит поиск атрибутов.

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

Использование библиотеки для полнотекстового поиска Xapian в Python

Время на прочтение4 мин
Количество просмотров11K
Сегодня, в эпоху Web 2.0, когда контента на сайтах становится все больше и больше, перед разработчиками встает задача реализации полнотекстового поиска.

Вариантов немного:
  • использовать виджеты от разработчиков поисковых систем (Google, Яндекс, etc): легко внедрить, привычный для пользователя интерфейс, поддержка морфологии, исправление слов по словарю, возможно более быстрая индексация сайта поисковыми системами, но, как правило ограниченные возможности по настройке и неизбежное запаздывание индексации;
  • использовать встроенные в СУБД средства (например FULLTEXT-индекс для MySQL): достаточно легко внедрить, актуальный поисковый индекс, полный контроль над настройкой и внешним видом, но, чаще всего очень низкая производительность на больших объемах данных, отсутствие учета морфологии, либо, в худшем случае, полное отсутствие подобных средств в СУБД;
  • использовать отдельную библиотеку/систему полнотекствого поиска.

Третий вариант кажется самым лучшим, ведь он сочетает достоинства двух других вариантов. Правда и здесь не обошлось без недостатков — библиотека требует установки, иногда даже запуска демона (например Sphinx), что может быть неприемлемо.

Решений существует масса, у каждого есть свои достоинства и недостатки. Я бы хотел подробнее остановиться на относительно малоизвестной библиотеке Xapian.
Читать дальше →

google translate script

Время на прочтение5 мин
Количество просмотров15K
Всем привет. Все что изложено ниже — мой первый реально полезный (во всяком случае для меня) опыт использования питона. Буду благодарен если подскажете как улучшить/оптимизировать скрипт.



С давних времен был у меня скриптик на баше которые переводил через гугл транслэйт все что ему кормишь
translate 'test' en ru

Мне захотелось чтоб он еще выдавал возможные альтернативы, как гугл недавно научился. Заодно решил устроить себе питон практику :)

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

Рисуем волну .wav-файла

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

Некоторое время назад я решил посвятить себя решению экзотической задачи — нарисовать волну wave-файла, как это делают аудио- и видеоредакторы, используя для этого Питон. В результате у меня получился небольшой скрипт, который вполне с этим справляется. Так, картинка выше сгенерирована им из песни «Under Pressure» группы Queen. Для сравнения — вид волны в аудиоредакторе:

Для разбора звука я использовал библиотеку numpy, а для построения графика — matplotlib. Под катом я изложу основы работы с wav-файлами и алгоритм скрипта.
Читать дальше →

Windows + Lighttpd + Python краткая инструкция по запуску

Время на прочтение2 мин
Количество просмотров14K
Под катом краткая инструкция по установке и настройке вышеуказанной связки. Через поиск не нашел, когда ставил для себя пришлось порыться по инету.

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

Python(x, y)

Время на прочтение9 мин
Количество просмотров54K
imagePython(x, y) — набор библиотек и программного обеспечения для численных расчетов, анализа и визуализации данных на основе Python. IDE представлены IDLE, Eclipse и Spyder, основой GUI избран Qt. Я расскажу вкратце о модулях, относящихся к самому Python, приведу несколько примеров их работы. Во время установки можно выбрать только то, что нужно, поэтому стоит разобраться что к этому нужному отнести. Кроме того, рассказ о модулях может пригодиться и сам по себе, поскольку их можно установить и по отдельности. Порядок следования модулей повторяет порядок оригинальной страницы и список чекбоксов установки.
Читать дальше →

PyQt4 и QML

Время на прочтение6 мин
Количество просмотров13K
Совсем недавно, разработчики фреймворка Qt Software, обрадовали нас появлением GUI, альтернативного стандартному, со своим, довольно несложным, языком разметки — QML.
Связкой QML с основной программой является модуль Qt Declarative. Начиная с версии 4.7 — PyQt4 поддерживает этот модуль.
QML значительно проще и гибче основного GUI, помимо того является и языком программирования, так как позволяет писать функции на javascript. В то время как Python довольно простой и гибкий интерпретируемый язык.

далее...

Простейший способ создать окружение virtualenv

Время на прочтение1 мин
Количество просмотров16K
В этой статье я хочу вам рассказать про это уникальный способ создания изолированных окружений Python для удобной и комфортной разработки даже в самых дремучих условиях.

$ python -murllib http://tiny.cc/ve-setup | python

Так это выглядит, а под катом находится пара рецептов использования.
Читать дальше →

Реализация графов и деревьев на Python

Время на прочтение17 мин
Количество просмотров292K
Продолжаем публикацию наиболее интересных глав из книги Magnus Lie Hetland «Python Algorithms». Предыдущая статья расположена по адресу habrahabr.ru/blogs/algorithm/111858. Сегодня же речь пойдет об эффективной работе с графами и деревьями и особенностях их реализации в Python. Базовая терминология теории графов уже обсуждалась (например здесь: habrahabr.ru/blogs/algorithm/65367), так что я не включил часть главы о терминах в эту статью.

Реализация графов и деревьев


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

Управление пакетами Python при помощи easy_install

Время на прочтение3 мин
Количество просмотров82K
Инструмент easy_install является модулем набора расширений к distutils языка Python — setuptools. Согласно официальной документации «Easy Install — это модуль Python (easy_install), идущий в комплекте библиотеки setuptools, которая позволяет автоматически загружать, собирать, устанавливать и управлять пакетами языка Python». Пакеты носят название «eggs» и имеют расширение .egg. Как правило, эти пакеты распространяются в формате архива ZIP.
Читать дальше →

Эволюция Python-программиста

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

Начинающий


  1. def factorial(x):
  2.     if x == 0:
  3.         return 1
  4.     else:
  5.         return x * factorial(x - 1)
  6. print factorial(6)


Программирующий уже год (Ранее изучавший Pascal)


  1. def factorial(x):
  2.     result = 1
  3.     i = 2
  4.     while i <= x:
  5.         result = result * i
  6.         i = i + 1
  7.     return result
  8. print factorial(6)

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

Не совсем обычный XMPP-бот на Python: туннелирование

Время на прочтение5 мин
Количество просмотров7.4K
Не так давно была опубликована статья про ICQ на Python, которая меня подтолкнула развить тему, правда в несколько другом направлении. Несколько лет назад у меня были трудности с домашним интернетом: доступ только в локальную сеть, из связи с внешним миром только ICQ и локальный Jabber сервер; никакой другой возможности попасть наружу не было. В результате чего родилась идея туннелировать HTTP трафик в XMPP.

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

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

Разбор задач Hacker Cup Qualification Round + перенос Facebook Hacker Cup Online Round I

Время на прочтение5 мин
Количество просмотров5.2K
Facebook Hacker Cup 2011 проходит в 4 раунда — квалификационный, два онлайн раунда и финальный, в главном офисе.

Квалификационный раунд, анонсированный официально Хабром завершился успешно.
Результаты раунда говорят о 5846 игроках, прошедших в первый онлайн тур.
Участникам квалификационного раунда предлагалось 3 задачи, для прохождения достаточно было правильного решения любой из них.

А вот первый онлайн раунд, прервав ближе к завершению, перенесли из-за технических проблем минимум на неделю:
We've decided to push back the remaining subrounds of round 1 until we are sure that they can run smoothly. Updates will follow here, but you can safely assume that the subrounds will not occur at least until next weekend.
image
Читать разбор задач Facebook Hacker Cup 2011 Qualification Round

Устранение Хвостовой рекурсии

Время на прочтение6 мин
Количество просмотров13K
Я недавно написал в своем блоге Python History пост «The origins of Python's functional features» (перевод). Упоминание о том, что Python не поддерживает хвостовую рекурсию (TRE) сразу спровоцировало несколько комментариев о том, как жаль, что Python не поддерживает данную оптимизацию. Появились ссылки на недавние записи в других блогах о том, что TRE может быть добавлена в Python легко. Позвольте мне защитить свою позицию — я не хочу добавлять TRE в язык. Если Вы хотите короткий ответ, это просто unpythonic.

Вот длинный ответ.
Читать дальше →

Откуда идут «функциональные» корни Python

Время на прочтение3 мин
Количество просмотров4.4K
Я никогда не полагал, что Python попадет под влияние функциональных языков, независимо от того что люди говорят или думают. Я знаком с императивными языками, такими как C и Algol68 и хотя я сделал функции объектами «первого класса», я не рассматривал Python как язык функционального программирования. Однако, было ясно, что пользователи хотят больше от списков и функций.
Читать дальше →

Реализация XMPP Publish/Subscribe посредством Twisted

Время на прочтение6 мин
Количество просмотров4K
Доброго времени суток! В данной статье я расскажу о том, как сделать базовую реализацию publish/subscribe с помощью протокола XMPP, используя Twisted и библиотеку Wokkel. XMPP поддерживает pub/sub благодаря расширению XEP-0060. Используя pub/sub, можно решить задачу уведомления всех участников о событии и множество других. Достоверно известно, что Apple использует основанный на Wokkel'е pub/sub внутри своего notification server'a, но об этом чуть позже.
Читать дальше →

Python-way. Работа над ошибками

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

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

Статья пригодится тем, кто недавно пишет на этом языке, а также для тех, кто пишет на нем маленькие скрипты, не заморачиваясь на деталях.

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

Управление облаками в Python

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

Облака



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

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

На данный момент EC2, пожалуй, до сих пор остается лидером, однако появилось еще несколько крупных игроков — думаю, такие имена как Rackspace и GoGrid на слуху у всех, кто хотя бы поверхностно интересуется темой. Помимо них на рынке сейчас активны еще не меньше десятка компаний, предлагающих подобные услуги.

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

Избранное Хабра в PDF

Время на прочтение3 мин
Количество просмотров17K
Всех с наступившими!

image

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

UPD:
— Исправлена ошибка «too large on page» (подробнее на github) Спасибо Bifidokk и StreetAngel
— Авторы топиков сделаны ссылкой
— Добавлена возможность сохранять избранное только из указанных блогов

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

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