这是我的代码:
def prifact(n):
if n == 0:
return []
def prifactHelper(x):
if x == 1:
return []
else:
for i in range(2,x+1):
if x % i == 0:
return [i] + prifactHelper(x/i)
return prifactHelper(n)
这是我的错误:
local variable 'prifactHelper' referenced before assignment
我已经正确定义了“prifactHelper”函数,所以我无法弄清楚发生了什么。
更新
代码工作正常,显然我有一个缩进错误,我在将代码解析为Stack Overflow时更正了。
答案 0 :(得分:0)
def prifact(n):
if n == 0:
return []
def prifactHelper(x):
if x == 1:
return []
else:
for i in range(2, int(x+1)):
if x % i == 0:
return [i] + prifactHelper(x/i)
return prifactHelper(n)
if __name__ == '__main__':
print(prifact(10))
输出[2, 5]
。但是,您需要使用整数调用range
,否则您有可能获得TypeError: 'float' object cannot be interpreted as an integer
。所以请致电range(2, int(x+1))
,而不仅仅是range(2, x+1)