[英]List is not being recognized by itertools
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時,該錯誤告訴我,即使我在函數定義中將其返回並可以打印,也未定義factorlist。
首先,您需要調用該函數並將其值輸入到factorlist
變量中。 它存在於函數fac
的本地范圍內,但不存在於全局范圍內。 要解決此問題,請首先運行fac
並將返回值分配給主作用域的變量factorlist
。 然后,您將可以運行for循環而不會出錯:
factorlist = fac(some_value)
for a, b in itertools.combinations(factorlist,2):
do_things
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.