import itertools
#p = input()
def fac(n):
factorlist = []
k = 1
while k < n+1:
if n % k == 0:
factorlist.append(k)
k+=1
continue
else:
k+=1
continue
print factorlist
return factorlist
for a, b in itertools.combinations(factorlist,2):
if gcd(a,b) == 1:
print a,b
continue
else:
continue
n=0
while n<=100:
fac(n)
n+=1在上面的代码中,当我尝试运行itertools.combination时,错误告诉我没有定义因子列表,即使我在函数定义中返回了它,并且我能够打印它。
发布于 2016-05-19 23:02:02
首先需要调用函数并将值放入factorlist变量。它存在于函数fac的局部作用域中,但并不全局存在。要修复它,首先运行fac并将返回值分配给主作用域的变量factorlist。然后,您将能够运行for循环而不会出现错误:
factorlist = fac(some_value)
for a, b in itertools.combinations(factorlist,2):
do_thingshttps://stackoverflow.com/questions/37326915
复制相似问题