Как я заметил, он будет работать один раз, соответствующая часть из документации The for statement:
for_stmt ::= "for" target_list "in" expression_list ":" suite
["else" ":" suite]
Список выражение вычисляется один раз; он должен давать итерируемый объект. Итератор создается для результата expression_list. Затем пакет выполняется один раз для каждого элемента, предоставленного итератором, в порядке возрастания индексов. Каждый элемент в свою очередь присваивается целевому списку, используя стандартные правила для назначений, а затем выполняется пакет. Когда элементы исчерпаны (что происходит сразу, когда последовательность пуста), пакет в предложении else, если он присутствует, выполняется, и цикл завершается.
Акцент мой.
Да, он будет работать один раз. Создает ли python новый диапазон для каждой итерации в 'for i в диапазоне (100) ..'? –
Чтобы быть безопасным, почему бы не назначить возврат 'c.Execute (...)' к переменной сначала, а затем перейти в ваш цикл: 'для строки в sharesCollection: print row'. Таким образом, не должно быть никаких сомнений. – gmiley