我编写了以下程序来对一个数字进行质因数分解:
import math
def prime_factorize(x,li=[]):
until = int(math.sqrt(x))+1
for i in xrange(2,until):
if not x%i:
li.append(i)
break
else: #This else belongs to for
li.append(x)
print li #First print statement; This is what is returned
return li
prime_factorize(x/i,li)
if __name__=='__main__':
print prime_factorize(300) #Second print statement, WTF. why is this None
以下是我得到的输出:
[2, 2, 3, 5, 5]
None
Altho',返回值被正确打印,之后的返回值似乎一直没有打印。我错过了什么?
另外,如何改进程序(继续使用递归)