Python - Alguien me puede explicar esta función?

 
Vista:

Alguien me puede explicar esta función?

Publicado por Raúl (2 intervenciones) el 10/07/2017 11:26:52
Buenos días, estoy empezando con Python y tengo una duda. En esta función:

1
2
3
4
5
6
7
8
9
def factorial(n):
  if n == 0:
    return 1
  else:
    recursivo = factorial(n-1)
    resultado = n * recursivo
    return resultado
 
factorial(3)

Va avanzando la ejecución hasta un punto en que n=0 y devuelve 1, mi duda es por qué no acaba en return 1 y continúa con los otros valores de n hasta dar el return resultado?

La función hace lo que se espera pero no la entiendo.
Gracias por la ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Alguien me puede explicar esta función?

Publicado por tincopasan (1082 intervenciones) el 10/07/2017 13:17:09
si prestás atención antes del return hay una condición: si n es igual a 0 entonces es 1 sino continua
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 113
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Alguien me puede explicar esta función?

Publicado por Andres Leonardo (40 intervenciones) el 10/07/2017 17:52:19
def factorial(n): funcion factoria con un parametro numero entero
if n == 0: si el numero enviado como parametro = 0
return 1 retorno uno
else: caso contrario
recursivo = factorial(n-1) - la variable recursiva = factorial (n-1) 'llamo a la misma funcion ...... otra vez es decir hasta que sea 0
resultado = n * recursivo resultado de la multiplicacion
return resultado y cuando termine retorno reusltado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Alguien me puede explicar esta función?

Publicado por Raúl (2 intervenciones) el 11/07/2017 19:24:15
Ok, gracias a los dos por las respuestas, ya veo como funciona. Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar