birdwatcher: (belgium fries)
[personal profile] birdwatcher
Младенец, как все люди младше сорока лет, стал огромным энтузиастом питона. Предлагает теперь все время почитать для развлечения код, а я ничего не понимаю, даже цикл for.
Вот если мы пишем for i in range (0, 2**31, 1): print i, он внутри аллокирует четыре гигабайта, или не обязательно?
Как можно настолько сложный язык использовать для обучения?

Date: 2017-08-29 02:12 pm (UTC)
avysk: (Default)
From: [personal profile] avysk
Там просто for делает не то, что ты думаешь.

>>> x = range(1, 5)
>>> y = [1, 2, 3, 4, 5]
>>> x
range(1, 5)
>>> y
[1, 2, 3, 4, 5]
>>> x.__iter__()
<range_iterator object at 0x10703b5a0>
>>> x.__iter__().__next__()
1
>>> y.__iter__()
<list_iterator object at 0x1071e8d68>
>>> y.__iter__().__next__()
1
>>> 


Использовать для обучения нельзя, да.
Edited Date: 2017-08-29 02:13 pm (UTC)

Date: 2017-08-29 03:40 pm (UTC)
From: [identity profile] birdwatcher.livejournal.com
Я и говорю, когда for делает не то, что я думаю, это звоночек.