Как стать автором
Обновить

Комментарии 55

*лениво* — чего тебе?
а NoneType куда забыли?
Формат статьи — что-то обязательно окажется обрезанным рамками.
по поводу «градуса» — мне кажется можно было бы заинтересовать новичков красивыми примерами функционального кода на питоне — reduce, list comprehensions. по-моему местное большинство — почитатели php — им это было бы в новинку, и, следовательно, интересно.
будут… нада ж тока с функциями разобраться
И все же, какая связь между питоном и унцией? Еще как-то понятно, если бы изучали silverlight или методологию получения доходов с e-gold…

Почему не попугаи?!
Связь такая, что в унциях измеряется золото ;)
Черт. Из-за обилия подобных статей на хабре долго выбирал какой язык начать учить (занимаюсь front-end разработкой, решил познакомиться с чем-нибудь для общего развития).
Вы только что меня купили. :)
Это радостно слышать! Сегодня будет продолжение.
интересно, как новичку :)
спасибо, оч. интересно, хотелось бы побольше примеров с расшифровкой что и как в данных примерах происходит, ну или ссылочек подкиньте где достать хорошо комментированый код.
питон — это хорошо
люблю статьи про питон! :)

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

спасибо за понимание
и за статью :)
НЛО прилетело и опубликовало эту надпись здесь
не хочу показаться назойливым, но хотя бы минимальное форматирование текста можно сделать? допустим, пропустить строку между соседними парами «ввода-вывода»? читать же удобнее будет
НЛО прилетело и опубликовало эту надпись здесь
просто чтобы понятнее было — что мы вводим, а что выводим
пример же может быть и не в две строки
а в python 3.0 ввели литералы для множеств

L = set(['h','a','h','a'])

можно написать так

L = {'h','a','h','a'}
> В роли ключей могут выступать любые неизменяемые объекты

Если более точно, то ключами могут быть любые объекты, которые хэшируемы (термин hashable из глоссария Python'a). При этом, говорить о неизменяемости нужно именно хэш-значения, но не самого объекта. Например, объект, порожденный от пользовательского класса — изменяем (мы можем динамически добавлять новые слоты в него, например), но, тем не менее, имеет неизменяемое хэш-значение (которое также равно его id: id(obj) == obj.__hash__ — True).
> id(obj) == obj.__hash__

id(obj) == obj.__hash__() # опечатка, __hash__ — метод
А я-то думал, что питонов, как и удавов, будут мерять в попугаях, а не унциях…
А это значит, если возвращаться к тому с чего мы начали разговор, что, если создать список X, затем сделать присваивание X=Y, а затем изменить X, то Y тоже изменится. Тут нужно переменные местами поменять.
зачем?
Y не изменится
Спасибо! Поправил.
«Осваиваем Haskell. Монада первая.» :))
Да, гиковость, пожалуйста, подкрутите. :) Я хоть с питоном и не знаком, но все же интереснее будет читать о его отличительных чертах, а не о той части, которая более-менее одинакова во всех динамических языках.
Лично мне еще было бы любопытно бы в какой-нибудь из заключающих унций прочитать про особенности портированных версий питона (конкретно — IronPython): какие там есть ограничения, как меняется производительность и т.п.
Не все знакомы с динамическими языками в принципе
НЛО прилетело и опубликовало эту надпись здесь
В чём её отличительные особенности от перевода официальной документации?
НЛО прилетело и опубликовало эту надпись здесь
Как я понимаю, статьи описывают 2.Х, тогда ИМХО лучше сразу делать пометки об изменениях в 3.0
Унция питонов. А лучше будет «попугай первый», хоть питон и не удав.
НЛО прилетело и опубликовало эту надпись здесь
Питоны они разные. в индийских (читай — индусских) питонах — в два раза больше.
только переведенные части заканчиваются быстро…
Жду статью про функциональное программирование на питоне, то ли я балбес, то ли мозг не хочет понимать эту тему
что вы понимаете под «функциональным программированием»?
очень интересно, но я ничего не понял. С чего начинать лучше? уровень нулевой, образование гуманитарное. Изучить хочу не для работы, а чисто из интереса.
И да, это не только про питона, а о моих познаниях в программировании в целом
А это уже тема отдельной статьи. Лично я бы начал с конкретных практических примеров, например, обработки строк и текстовых файлов. В хозяйстве всегда пригодится.
НЛО прилетело и опубликовало эту надпись здесь
А как же функции (в том числе методы классов), классы и модули? Это тоже встроенные типы в Python. А еще файлы, слайсы, объекты кода, да много чего еще. Я понимаю, что формат статьи, но хотя бы ссылку на иерархию типов дать можно. И упомянуть о возможности введения собственных типов в расширениях тоже можно.
Очень радует, что в последнее время на хабре появился такой интерес к Python. Спасибо Вам за хорошую статью. Только, почему-то в статье почти ничего не сказано о том, что данные в кортежах, списках и словарях могут храниться абсолютно разные, например:

>>> M = [1, 'hello', [2, 5, { 'one': (4, 7), 2: «hello world» }], (7, 8)]

>>> M[2]
[2, 5, {2: 'hello world', 'one': (4, 7)}] #здесь видно, что словари сортируются по ключам

>>> M[2][2]
{2: 'hello world', 'one': (4, 7)}

>>> M[2][2][2]
'hello world'

>>> M[2][2]['one']
(4, 7)

>>> M[2][2]['one'][0]
4
>>> M[1]
'hello'

Благодаря этому очень легко создаются двумерные массивы:

>>> m = [[1, 2 ,3], [4, 5, 6], [7, 8, 9]]

>>> m
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

>>> m[1][1]
5

>>> for col in m:
… print col

[1, 2, 3]
[4, 5, 6]
[7, 8, 9]

Причем кортежи, списки и словари могут содержать в качестве элементов и функции:

>>> def Print_Hello( username = 'world' ):
… print 'Hello %s!' % username


>>> Print_Hello()
Hello world!

>>> S = [1, Print_Hello, 2]

>>> S[1]

>>> S[1]('Habrahabr')
Hello Habrahabr!

Или:
>>> def Func():
… return «Hello world!»


>>> K = [1, Func()]

>>> K
[1, 'Hello world!']

Все примеры показаны на списках, но все это справедливо и для кортежей, и для словарей.
Спасибо за хорошее дополнение!
Есть же целый блог по питону. Зачем плодить сущности? Тем более, что переводов туториала чуть более, чем дофига.
Какая наиболее популярная библиотека для создания пользовательских интерфейсов на питоне?
Наиболее популярные: Tkinter, PyGTK, PyQt, wxWidgets.
большое спасибо
Это я конечно знаю уже, но тем не менее спасибо!
С нетерпением жду начала разбора джанго:)
может дать ссылки на статьи из блога Python и продолжить с того момента где закончилось? или освещать не упомянутые там моменты, чтобы не повторяться?
Для оптимизации скорости выполнения при объявлении числового или короткого строкового объекта

А насколько длинным должен быть строковый объект, чтобы значение выражения x is y вернуло False при фактическом равенстве строк?
Очень очень ждем продолжения!
интересно после копипаста кто нибудь проверял это?
>>> 'string'[0:5:-2]
'nrs'

оно не работает! ибо «идти» нужно с конца последовательности, т.е. рабочий пример должен быть таким:
>>> 'string'[5:0:-2]
'git'

кстати, стоит подумать дважды, чтобы понять, что будет при отрицательном step

docs.python.org/2/library/stdtypes.html

The slice of s from i to j with step k is defined as the sequence of items with index x = i + n*k such that 0 <= n < (j-i)/k. In other words, the indices are i, i+k, i+2*k, i+3*k and so on, stopping when j is reached (but never including j). If i or j is greater than len(s), use len(s). If i or j are omitted or None, they become “end” values (which end depends on the sign of k). Note, k cannot be zero. If k is None, it is treated like 1.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории