Comments 55
хабракат!
-4
а NoneType куда забыли?
0
Формат статьи — что-то обязательно окажется обрезанным рамками.
0
по поводу «градуса» — мне кажется можно было бы заинтересовать новичков красивыми примерами функционального кода на питоне — reduce, list comprehensions. по-моему местное большинство — почитатели php — им это было бы в новинку, и, следовательно, интересно.
+1
И все же, какая связь между питоном и унцией? Еще как-то понятно, если бы изучали silverlight или методологию получения доходов с e-gold…
Почему не попугаи?!
Почему не попугаи?!
0
интересно, как новичку :)
0
спасибо, оч. интересно, хотелось бы побольше примеров с расшифровкой что и как в данных примерах происходит, ну или ссылочек подкиньте где достать хорошо комментированый код.
0
питон — это хорошо
люблю статьи про питон! :)
НО. но не понимаю зачем в примерах кода на питоне часто используют копипаст из консоли питона? мне одному неудобно читать код с префиксом ">>>"? если да, то прошу прощения за замечание, иначе просьба авторам статей об этом замечательном языке программирования — ну не удобно же читать код с префиксом ">>>"
спасибо за понимание
и за статью :)
люблю статьи про питон! :)
НО. но не понимаю зачем в примерах кода на питоне часто используют копипаст из консоли питона? мне одному неудобно читать код с префиксом ">>>"? если да, то прошу прощения за замечание, иначе просьба авторам статей об этом замечательном языке программирования — ну не удобно же читать код с префиксом ">>>"
спасибо за понимание
и за статью :)
0
UFO just landed and posted this here
просто чтобы понятнее было — что мы вводим, а что выводим
пример же может быть и не в две строки
пример же может быть и не в две строки
+1
а в python 3.0 ввели литералы для множеств
L = set(['h','a','h','a'])
можно написать так
L = {'h','a','h','a'}
L = set(['h','a','h','a'])
можно написать так
L = {'h','a','h','a'}
+1
> В роли ключей могут выступать любые неизменяемые объекты
Если более точно, то ключами могут быть любые объекты, которые хэшируемы (термин hashable из глоссария Python'a). При этом, говорить о неизменяемости нужно именно хэш-значения, но не самого объекта. Например, объект, порожденный от пользовательского класса — изменяем (мы можем динамически добавлять новые слоты в него, например), но, тем не менее, имеет неизменяемое хэш-значение (которое также равно его id: id(obj) == obj.__hash__ — True).
Если более точно, то ключами могут быть любые объекты, которые хэшируемы (термин hashable из глоссария Python'a). При этом, говорить о неизменяемости нужно именно хэш-значения, но не самого объекта. Например, объект, порожденный от пользовательского класса — изменяем (мы можем динамически добавлять новые слоты в него, например), но, тем не менее, имеет неизменяемое хэш-значение (которое также равно его id: id(obj) == obj.__hash__ — True).
+2
А я-то думал, что питонов, как и удавов, будут мерять в попугаях, а не унциях…
-1
А это значит, если возвращаться к тому с чего мы начали разговор, что, если создать список X, затем сделать присваивание X=Y, а затем изменить X, то Y тоже изменится. Тут нужно переменные местами поменять.
0
«Осваиваем Haskell. Монада первая.» :))
0
Да, гиковость, пожалуйста, подкрутите. :) Я хоть с питоном и не знаком, но все же интереснее будет читать о его отличительных чертах, а не о той части, которая более-менее одинакова во всех динамических языках.
Лично мне еще было бы любопытно бы в какой-нибудь из заключающих унций прочитать про особенности портированных версий питона (конкретно — IronPython): какие там есть ограничения, как меняется производительность и т.п.
Лично мне еще было бы любопытно бы в какой-нибудь из заключающих унций прочитать про особенности портированных версий питона (конкретно — IronPython): какие там есть ограничения, как меняется производительность и т.п.
+1
UFO just landed and posted this here
Как я понимаю, статьи описывают 2.Х, тогда ИМХО лучше сразу делать пометки об изменениях в 3.0
+1
Унция питонов. А лучше будет «попугай первый», хоть питон и не удав.
0
Хорошая на мой взгляд документация по питону находится здесь: http://ru.diveintopython.org/toc.html
0
Жду статью про функциональное программирование на питоне, то ли я балбес, то ли мозг не хочет понимать эту тему
0
очень интересно, но я ничего не понял. С чего начинать лучше? уровень нулевой, образование гуманитарное. Изучить хочу не для работы, а чисто из интереса.
И да, это не только про питона, а о моих познаниях в программировании в целом
И да, это не только про питона, а о моих познаниях в программировании в целом
0
UFO just landed and posted this here
А как же функции (в том числе методы классов), классы и модули? Это тоже встроенные типы в Python. А еще файлы, слайсы, объекты кода, да много чего еще. Я понимаю, что формат статьи, но хотя бы ссылку на иерархию типов дать можно. И упомянуть о возможности введения собственных типов в расширениях тоже можно.
0
Очень радует, что в последнее время на хабре появился такой интерес к 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!']
Все примеры показаны на списках, но все это справедливо и для кортежей, и для словарей.
>>> 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!']
Все примеры показаны на списках, но все это справедливо и для кортежей, и для словарей.
+2
Есть же целый блог по питону. Зачем плодить сущности? Тем более, что переводов туториала чуть более, чем дофига.
-3
Какая наиболее популярная библиотека для создания пользовательских интерфейсов на питоне?
0
Это я конечно знаю уже, но тем не менее спасибо!
С нетерпением жду начала разбора джанго:)
С нетерпением жду начала разбора джанго:)
0
может дать ссылки на статьи из блога Python и продолжить с того момента где закончилось? или освещать не упомянутые там моменты, чтобы не повторяться?
0
Для оптимизации скорости выполнения при объявлении числового или короткого строкового объекта
А насколько длинным должен быть строковый объект, чтобы значение выражения x is y вернуло False при фактическом равенстве строк?
А насколько длинным должен быть строковый объект, чтобы значение выражения x is y вернуло False при фактическом равенстве строк?
0
Очень очень ждем продолжения!
0
интересно после копипаста кто нибудь проверял это?
оно не работает! ибо «идти» нужно с конца последовательности, т.е. рабочий пример должен быть таким:
кстати, стоит подумать дважды, чтобы понять, что будет при отрицательном step
docs.python.org/2/library/stdtypes.html
>>> '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.
0
Sign up to leave a comment.
Осваиваем Python. Унция 1. Типы данных.