Найти - Пользователи
Полная версия: Цикл for
Начало » Python для новичков » Цикл for
1 2 3
roggerg
Всем привет.
При объяснении цикла 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]]
JOHN_16
roggerg
код оформляется в тегах CODE иначе затирается содержимое списков. Исправьте.
FishHook
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
roggerg
Для меня как то не очевидно что element это элементы списка. Как мне кажется не хватает связки между
element и элементами в списке.
alex925
roggerg
Как мне кажется
Когда кажется креститься над.

Ну, а если серьёзно, то те практики не хватает и знания мат части. Практикуйся и обычные вещи перестанут казаться странными.
roggerg
Вот нашел на хабре такое определение

Второй вид циклов в Пайтон – цикл for. Он аналогичен циклу foreach других языков. Его синтаксис условно таков.

for переменная in список:
команды

теперь стало понятно, это получается просто такой синтаксис для этого цикла.
roggerg
Вот нашел на хабре такое определение

Второй вид циклов в Пайтон – цикл for. Он аналогичен циклу foreach других языков. Его синтаксис условно таков.

for переменная in список:
команды

теперь стало понятно, это получается просто такой синтаксис для этого цикла.
boligolov
roggerg
Хабр не читай, лучше читай документацию.

for <переменная для присваивания> in <объект который обходим>:
     <тело цикла >

for'ом перебирается любой объект поддерживающий итерацию, а не только список.

Пример у тебя в начале не питоновский, я б так сделал:
list = [0,10,20,30,40,50,60,70,80,90]
for i in range(len(list)):
    list[i] = list[i]+2
print (list)
FishHook
boligolov
Пример у тебя в начале не питоновский, я б так сделал:
Жесть какая. У тебя дескать весьма питоновский код? А если прочитать первые десять страниц Лутца для начала? Что то там про map, про списковые выражения?
Isem
for -
это не функция, мать твою
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB