я написал следующую программу в прайм факторизовать номер:Python рекурсивная программа для простого факторизовать ряд
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», возвращаемое значение правильно напечатан, после возвращаемого значения все время печатается. Что мне не хватает?
Кроме того, как можно улучшить программу (продолжая использовать рекурсию)
Кроме того, 'print' операторы внутри функции, что вы видите.«Нет» - это возвращаемое значение функции. –
@ S.Lott, может объяснить. Я возвращаю то, что я печатаю. Почему это должно быть иначе? –
И, снаружи, я печатаю, что я вернулся. –