una consulta porque en la condicion if n==1: return 1 ( no se puede else : return n*factorial (n-1) y solo puso defrente return n*fa...

Pregunta de la clase:
Recursividad
DIEGO ENRIQUE MONTES ALVIS

DIEGO ENRIQUE MONTES ALVIS

Pregunta
studenthace 4 años

una consulta porque en la condicion if n==1: return 1 ( no se puede else : return nfactorial (n-1) y solo puso defrente return nfactorial ( n-1) .Tengo entendido que cuando n =1 se retorna 1 pero a la vez retorna 1 *factorial (0) porque existe un return en if y otro return de la funcion se ejecuta dos returns? o como funciona . ayudaa

4 respuestas
para escribir tu comentario
    Josue Granados

    Josue Granados

    studenthace 4 años

    Hola Diego! El keyword return have 2 cosas: 1- regresa un valor 2- termina una función Entonces no te tienes que preocupar por las líneas debajo del if, si escribiste return y la condición es verdadera se regresará el valor que le especificaste y terminará de ejecutar esa función inmediatamente.

    DIEGO ENRIQUE MONTES ALVIS

    DIEGO ENRIQUE MONTES ALVIS

    studenthace 4 años

    te entendi que cuando se ejecuta una función solo es capaz de hacer un return y no dos por lo que si if n ==1 es verdadero retorna 1 y sale de la funcion global . Es asi ,o me equivoco en algo?

    DIEGO ENRIQUE MONTES ALVIS

    DIEGO ENRIQUE MONTES ALVIS

    studenthace 4 años

    la verdad que no te comprendi del todo , he visto videos en youtube y colocan if n==1 : return 1 else : return n*factorial(n-1) y a ese codigo le doy mas sentido respecto a este codigo , lo que no entiendo es que es lo que ocurre cuando el if n==1 es verdadero y retorna 1 , es similar a un break de un loop? es necesario siempre colocar el caso base dentro de una condicional if ?

    JESUS ALBERTO CARREÑO MARTINEZ

    JESUS ALBERTO CARREÑO MARTINEZ

    studenthace 4 años

    Hola En este tipo de programas siempre se suele programar el caso base o excepción aparte. Porque si colocamos

    return fibonacci(n - 1) + fibonacci(n - 2)

    como un else del if, es como si le estuviéramos diciendo al programa que esa también es una excepción.

    En realidad no afecta si lo colocamos como un else, pero es parte de las buenas practicas de un programador dedicar una función entera a lo que necesite hacer y colocar las excepciones aparte

    Y respecto a si la función entrega los 2 returns a la vez, la verdad es que no. Lo que hace es evaluar el dato que ingresamos y en base a eso regresarnos un return u otro, según sea el caso.

    Espero haberme podido expresar con claridad Porfavor si tienes una duda dila y así podré ayudarte

    Saludos

Curso de Pensamiento Computacional con Python

Curso de Pensamiento Computacional con Python

Comienza tu camino en el desarrollo de software con el lenguaje de programación Python. Entiende la estructura de pensamiento necesaria para resolver problemas en programación. Domina las estructuras de control para crear soluciones. Conoce las características de Python que te permiten reutilizar código. Prueba tu código e implementa correcciones y mejoras.

Curso de Pensamiento Computacional con Python
Curso de Pensamiento Computacional con Python

Curso de Pensamiento Computacional con Python

Comienza tu camino en el desarrollo de software con el lenguaje de programación Python. Entiende la estructura de pensamiento necesaria para resolver problemas en programación. Domina las estructuras de control para crear soluciones. Conoce las características de Python que te permiten reutilizar código. Prueba tu código e implementa correcciones y mejoras.