我正在尝试在Python中执行一个简单的Euclid示例,但收到标题中提到的错误。代码如下:

def gcd1(a,b):
        “”“欧几里得算法”“”
        而:
                a,b = b%a,a
        返回b


我正在按以下方式调用代码(我认为这可能与它有关):

对于set1中的x:
    打印(gcd1(x,set2 [x]))


编辑:现状(工作)


set1 = list(范围(开始,结束))
“”“ otherrange()的行为与range()相同,但是返回固定列表
set2 = list(otherrange(开始,结束))

对于set1中的x:
    打印(gcd1(x,set2 [x]))

最佳答案

这意味着set2是一个生成器,要解决这个问题,只需将其变成一个列表即可。

set2_list = list(set2)
for x in set1:
    print(gcd1(x, set2_list[x]))

09-25 16:11