Я пытаюсь выполнить простой пример Евклида в Python, но получаю сообщение об ошибке, упомянутое в заголовке. Код выглядит следующим образом:
def gcd1(a,b):
""" the euclidean algorithm """
while a:
a, b = b%a, a
return b
Я вызываю код следующим образом (я думаю, это может иметь какое-то отношение к этому):
for x in set1:
print(gcd1(x, set2[x]))
Изменить: текущая ситуация (работает)
set1 = list(range(start, end))
""" otherrange() behaves just like range() however returns a fixed list"""
set2 = list(otherrange(start, end))
for x in set1:
print(gcd1(x, set2[x]))
otherrange()? - person Martijn Pieters   schedule 07.09.2014range()в Python не является генератором, но ваша проблема указывает на то, что у вас есть такой объект. Пожалуйста, дайте нам что-нибудь, что позволит нам воспроизвести проблему. Только тогда мы сможем дать вам оптимальное решение, а не просто нанестиlist()штукатурку. - person Martijn Pieters   schedule 07.09.2014otherrange— это настраиваемый метод, который в основном возвращает список чисел. В то время как остальная часть моей реализации могла бы значительно выиграть от оптимизации, на мой вопрос здесь дан ответ. Я хотел бы продолжить и поговорить о проблеме. - person Ropstah   schedule 07.09.2014otherrange, потому что оно, кажется, возвращает генератор, где вам может не понадобиться возвращать его вообще. - person Martijn Pieters   schedule 08.09.2014