j'ai écrit le programme suivant au premier factoriser un nombre:programme récursif Python au premier factoriser un nombre
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
Voici le résultat que je reçois:
[2, 2, 3, 5, 5]
None
Altho », la valeur retournée est imprimé correctement, la valeur après retournée semble ne pas l'imprimer, tout le temps. Qu'est-ce que je rate?
De plus, comment puis-je améliorer le programme (en continuant à utiliser la récursion)
En outre, les déclarations 'print' dans la fonction sont ce que vous voyez.Le 'None' est la valeur de retour de la fonction. –
@ S.Lott, peut U expliquer. Je retourne ce que j'imprime. Pourquoi devrait-il être différent? –
Et, dehors, j'imprime, ce que j'ai retourné. –