
870.43
Общий рейтинг
Python *
Высокоуровневый язык программирования
Сначала показывать
Порог рейтинга
Уровень сложности
PyQt4 — Диалоговые окна
6 мин
27KПеревод
В PyQt4 есть два вида диалогов: предопределенные и пользовательские.
QInputDialog представляет простой диалог для получения единственного значения от пользователя. Значение может быть строкой, числом или пунктом из списка.
Предопределенные диалоги
QInputDialog
QInputDialog представляет простой диалог для получения единственного значения от пользователя. Значение может быть строкой, числом или пунктом из списка.
+26
Пишем полезную программу для KDE4 на питоне за два часа
11 мин
8KПоявилось на работе пара свободных часов и решил я себе сделать жизнь удобнее.
По роду деятельности(а работаю я программистом) приходится много чего делать на удалённых серверах, доступ на которые имеется только по ssh. А писать и отлаживать программы удобнее всего локально, и только потом ставить на рабочую машину. Посему удобно использовать sshfs. Однако, набирать в консоли каждый раз команду на монтирование я устал, писать скрипт на баше — лень. Потому захотелось иметь графический менеджер sshfs маунтов, да ко всему прочему в KDE4.
По роду деятельности(а работаю я программистом) приходится много чего делать на удалённых серверах, доступ на которые имеется только по ssh. А писать и отлаживать программы удобнее всего локально, и только потом ставить на рабочую машину. Посему удобно использовать sshfs. Однако, набирать в консоли каждый раз команду на монтирование я устал, писать скрипт на баше — лень. Потому захотелось иметь графический менеджер sshfs маунтов, да ко всему прочему в KDE4.
+103
Import this — Zen of Python
1 мин
31KВсе, пожалуй, знают, что если в интерпретаре Python выполнить импорт модуля this, то на экран выведется Zen of Python. Но думаю, что не все в курсе, как выглядит исходник этого модуля.
+39
Memoization в Python
1 мин
17KMemoization – свойство функций сохранять (кешировать) результаты вычислений, дабы не вычислять в последствии повторно.
Эта технология оптимизации позволят достичь прироста скорости работы за счет потерь в свободной памяти.
Допустим, у нас есть некая функция bigfunc, результат которой зависят только от переданных в нее аргументов, а сложность вычислений достаточно большая. Естественно нам не хотелось бы производить вычисления при каждом вызове bigfunc если она уже вызывалась ранее с теми же параметрами. Тут то нам на помощь и приходит memoization.
Для python декоратор для функции будет выглядеть следующим образом:
Далее, нам достаточно объявить bigfunc как
Или переопределить, если она уже объявлена:
Декоратор, объявленный в начале статьи, работает только с пиклезуемыми объектами. Если ваша функция работает с непиклезуемыми объектами – вы можете заменить
на
но вы потеряете возможность работы с mutable объектами.
Декоратор можно легко модифицировать, для ограничения количества закешированных элементов.
Эта технология оптимизации позволят достичь прироста скорости работы за счет потерь в свободной памяти.
Допустим, у нас есть некая функция bigfunc, результат которой зависят только от переданных в нее аргументов, а сложность вычислений достаточно большая. Естественно нам не хотелось бы производить вычисления при каждом вызове bigfunc если она уже вызывалась ранее с теми же параметрами. Тут то нам на помощь и приходит memoization.
Для python декоратор для функции будет выглядеть следующим образом:
import cPickle
def memoized(func):
memory = {}
def memo(*args,**kwargs):
hash = cPickle.dumps((args, sorted(kwargs.iteritems())))
if hash not in memory:
memory[hash] = func(*args,**kwargs)
return memory[hash]
return memo
Далее, нам достаточно объявить bigfunc как
@memoized def bigfunc(…): …
Или переопределить, если она уже объявлена:
bigfunc = memoized(bigfunc)
Декоратор, объявленный в начале статьи, работает только с пиклезуемыми объектами. Если ваша функция работает с непиклезуемыми объектами – вы можете заменить
hash = cPickle.dumps((args, sorted(kwargs.iteritems())))
на
hash = (tuple(args), frozenset(kwargs.items())
но вы потеряете возможность работы с mutable объектами.
Декоратор можно легко модифицировать, для ограничения количества закешированных элементов.
+45
Основы Python — кратко. Часть 6. Расширенное определение функций.
4 мин
75KПродолжение, начало см. тут.
В этом разделе мы поговорим более подробно про определение функций, и раскроем некоторые Python-специфичные особенности данного процесса. Так как информации много, то постараюсь излагать все достаточно кратко.
Для всех параметров функций можно указывать значения по-умолчанию, это дает возможность вызвать функцию с меньшим числом параметров. Например, у нас есть функция для авторизации пользователя на сайте:
В этом разделе мы поговорим более подробно про определение функций, и раскроем некоторые Python-специфичные особенности данного процесса. Так как информации много, то постараюсь излагать все достаточно кратко.
Параметры по-умолчанию
Для всех параметров функций можно указывать значения по-умолчанию, это дает возможность вызвать функцию с меньшим числом параметров. Например, у нас есть функция для авторизации пользователя на сайте:
def login(username="anonymous", password=None):
"""Тут какие-то действия"""
pass
# вызвать эу функцию мы можем одним
# из нижеприведенных способов
login("root", "ujdyzysqgfhjkm")
login("guest")
login()
# мы можем указать какой из параметров мы передаем,
# указав его имя в явном виде
login(password="nobody@mail.com")
+38
Рекурсия с помощью Y–комбинатора
4 мин
9.8KПоводом для написания этой статьи стало желание разобраться с тем, как работает Y-комбинатор.
Чтобы мозги не ржавели и работали как часы, я стараюсь пробовать новые и необычные вещи.
Интереса ради, я скомпилировал Lua 5.x под DOS, с этим никаких проблем не было, но при проверке Lua на её стандартных тестах, я обнаружил код вычисления факториала, работу которого я не понял.
Но ясно осознал, что это нечто относится к функциональному программированию.
Чтобы мозги не ржавели и работали как часы, я стараюсь пробовать новые и необычные вещи.
Интереса ради, я скомпилировал Lua 5.x под DOS, с этим никаких проблем не было, но при проверке Lua на её стандартных тестах, я обнаружил код вычисления факториала, работу которого я не понял.
Но ясно осознал, что это нечто относится к функциональному программированию.
+34
Python. Плазма-змей
4 мин
3.2KKDE4
Все уже успели пройтись по сырости технологии, внешнему виду, концепциям интерфейса, но настоящие апологеты знают — когда KDE4 войдёт в стабильную фазу, все станет хорошо, и слабые духом отступники, которые видите ли не могли потерпеть годик постоянных глюков, вернутся.
Теперь серьезно — ключевая технология нового KDE — Plasma. Таким образом, чтобы в KDE было жить хорошо, надо создавать плазмоиды. Спасибо C и C++ за работу ядра, X сервера и KDE, а мы, поколение web-разработчиков, да и вообще людей привыкших к простоте, вполне можем обжить систему используя более знакомые нам языки, к примеру Python, который, как известно, поставляется с батарейками.
+42
Скрипт для рекурсивного сравнения директорий
3 мин
7.8KВ этом посте хочу поделиться с вами простым, но весьма полезным скриптом на питоне, который я написал для сравнения директорий тестового и рабочего проектов Django.
+11
Итерируем все и вся
4 мин
65K
Насколько я успел понять по собственному опыту, при переходе на Python с другого языка программирования порой сложно привыкнуть к его специфическому подходу к циклам. Например, взять тот же самый for, который работает совершенно по-другому, нежели в других языках. Возьму на себя смелость рассказать о том, что мне самому поначалу было сложно осознать, а тем более использовать в своем коде — итераторы. Вещь на самом деле очень полезная, надо только уметь правильно ей пользоваться! ;)
АПД: Только сейчас заметил, что тема функционального программирования сегодня популярна как никогда :) Спасибо товарищу uj2 за раскрытие такой интересной темы, поддерживаю!
+44
Функциональное программирование для землян — списки
6 мин
10K
Продолжаю свое небольшое введение в функциональное программирование. На этот раз речь пойдет о списках и методах их обработки в функциональном стиле.+51
Функциональное программирование для землян — функции
5 мин
9.2K
В статье про Python пользователь Xronos попросил рассказать о функциональном программировании (ФП). Поскольку я одно время довольно плотно занимался с Lisp, я хотел бы немножко рассказать об этом. Сразу хочу сказать, что о чистом ФП речь не идет. Я расскажу о более простых и более применимых приемах на примере языка Python.
+67
Python, формирование структуры — Guido van Rossum (часть 2)
5 мин
7.5K
Это продолжение статьи из официального блога автора любимого всеми нами языка. Поэтому повествование ведется от лица самого Гуидо ван Россума. Первая часть здесь.Введение и обзор
Вступление.
Python сейчас является одним из самых популярных некомпилируемых языков программирования, наравне с Perl, Tcl, PHP и Ruby. Хотя он чаще всего рассматривается, как «скриптовый язык», на самом деле это вполне полноценный язык программирования, подходящий для решения большинства стандартных задач и занимающий одну ступень с Lisp или Smalltalk (впрочем, как и со многими другими). В настоящее время Python используется фактически для всего — от одноразовых простеньких скриптов до больших расширяемых веб-серверов, работающих по 24 часа семь дней в неделю. Он используется для разработки GUI-приложений и баз данных, клиент-серверных веб-приложений и тестирования. Python используется учеными, пишущими приложения под быстрейшие в мире суперкомпьютеры, и детьми, которые в первый раз учатся программировать.
+59
Ближайшие события
Python, философия дизайна — Guido van Rossum (часть 1)
5 мин
10K
Это первая часть статьи из официального блога автора любимого всеми нами языка. Поэтому повествование ведется от лица самого Гуидо ван Россума. Вторая часть здесь.
Дальнейший текст поможет нам нырнуть глубже в историю языка Python. Тем не менее, перед тем, как мы сделаем это, мне бы хотелось заострить внимание на философских вещах, которые помогли мне принимать решения, пока я разрабатывал дизайн и структуру Python.
+66
Кузявые ли бутявки, т.е. пишем морфологический анализатор на Python
8 мин
55KМорфологический анализатор для русского языка — это что-то заумное? Программа, которая приводит слово к начальной форме, определяет падеж, находит словоформы — непонятно, как и подступиться? А на самом деле все не так и сложно. В статье — как я писал аналог mystem, lemmatizer и phpmorphy на Python, и что из этого получилось.
+103
Было бы Вам полезно/интересно почитать про программирование на Python для WindowsMobile устройств?
1 мин
1.3K+45
Простейшее рисование с помощью PIL
2 мин
61KНедавно потребовалось мне создавать картинку на лету. Решил спользовать библиотеку для питона PIL. Она поддерживает кучу форматов, а также множество цветовых систем (RGB, RGBA и более простые). Итак, рассмотрим простейшее, как создать рисунок и что-либо на нем нарисовать.
+42
NVIDIA CUDA(сиквел) — Настройка PyCUDA
4 мин
18K
В продолжение темы Настройка Ubuntu 8.10 для кодинга под NVIDIA CUDA, я решил наладить себе рабочее место для использования одного из моих любимых языков программирования — Python. Для этого существует отличный набор библиотек PyCUDA, позволяющий реализовывать все прелести NVIDIA CUDA API с помощью удобного и красивого кода.
+35
Вышла первая версия Zine — клона Wordpress на Python.
1 мин
3.1KArmin Ronacher, создатель небезызвестных python-пакетов Pygments (подсветка синтаксиса) и Jinja2 (django-подобный движок шаблонов) выпустил под рождество новое творение — движок для блога Zine, который внешне является клоном Wordpress.
+47
Скрипты Python против Bash
4 мин
120KНе секрет, что в плане автоматизации каких-либо простых действий и тот, и другой вариант скриптов — мощное орудие. Прочел я эту статейку, и подумал — а чем мы хуже? Возьму, да и опишу, как автоматизировать простые консольные действия с помощью python-скриптов, даром что это тема довольно широкая.
+63
Вклад авторов
kesn 2850.0DmitrySpb79 1664.0badcasedaily1 1364.4ru_vds 1279.6ph_piter 1176.6alizar 1078.4pushtaev 1058.0grigoryvp 1006.0Firemoon 985.0homm 969.0