Форум сайта python.su
0
Всем привет.
При объяснении цикла for дается такой пример
Откуда становится известно. что element это то что внутри списка. Ведь вместо element я могу написать что угодна например abracadabra.
И если прогнать цикл в ручную начиная с i=0 как в формуле spisok=element+2
element принимает значение 0.
[/spisok = [0,10,20,30,40,50,60,70,80,90] >>> i = 0 >>> for element in spisok: spisok[i] = element + 2 i = i + 1 >>> spisok [2, 12, 22, 32, 42, 52, 62, 72, 82, 92]]
Отредактировано roggerg (Март 15, 2015 03:52:36)
Офлайн
221
roggerg
код оформляется в тегах CODE иначе затирается содержимое списков. Исправьте.
Офлайн
568
roggergА что именно вызывает удивление? Это же динамический язык.
Откуда становится известно. что element это то что внутри списка. Ведь вместо element я могу написать что угодна например abracadabra.
# -*- coding:utf-8 -*- class _for: def __init__(self, iterable, **kwargs): if len(kwargs.items()) != 1: raise SyntaxError() counter_name, counter_start = kwargs.items()[0] self.iterable = iter(iterable) setattr(self, counter_name, counter_start) setattr(self, "get_counter", lambda: getattr(self, counter_name)) setattr(self, "set_counter", lambda value: setattr(self, counter_name, value)) def __iter__(self): return self def next(self): counter = self.get_counter() self.set_counter(counter + 1) return self.iterable.next() spisok = [12, 23, 44, 55, 67, 2, 45] print "element" f = _for(spisok, element=0) while 1: try: val = next(f) print val, f.element except StopIteration: break print "abracadabra" f = _for(spisok, abracadabra=3) while 1: try: val = next(f) print val, f.abracadabra except StopIteration: break
Офлайн
0
Для меня как то не очевидно что element это элементы списка. Как мне кажется не хватает связки между
element и элементами в списке.
Офлайн
14
roggergКогда кажется креститься над.
Как мне кажется
Офлайн
0
Вот нашел на хабре такое определение
Второй вид циклов в Пайтон – цикл for. Он аналогичен циклу foreach других языков. Его синтаксис условно таков.
for переменная in список:
команды
теперь стало понятно, это получается просто такой синтаксис для этого цикла.
Офлайн
0
Вот нашел на хабре такое определение
Второй вид циклов в Пайтон – цикл for. Он аналогичен циклу foreach других языков. Его синтаксис условно таков.
for переменная in список:
команды
теперь стало понятно, это получается просто такой синтаксис для этого цикла.
Офлайн
1
roggerg
Хабр не читай, лучше читай документацию. 
for <переменная для присваивания> in <объект который обходим>: <тело цикла >
list = [0,10,20,30,40,50,60,70,80,90] for i in range(len(list)): list[i] = list[i]+2 print (list)
Офлайн
568
boligolovЖесть какая. У тебя дескать весьма питоновский код? А если прочитать первые десять страниц Лутца для начала? Что то там про map, про списковые выражения?
Пример у тебя в начале не питоновский, я б так сделал:
Офлайн
7
for -
это не функция, мать твою
Офлайн