# función recursiva: una función que se llama a sí misma # factorial de un número: 5!=5*4*3*2*1 multiplicación de todos los números hasta el 1 # factorial de un número: 5! = 5*4! multiplicación del número por el factorial de ese número -1 # Si yo quiero haccer una función recursiva: # identificar el caso base: Siempre hay un final donde devolvemos un valor y no otra llamada # if numero<2 devuelvo 1 # poner nuestra función como una llama a ella misma # numero*factorial(numero-1) # En esta llamada de alguna manera nos acercamos al caso base def factorialRecursivo(numero): if numero < 2: return 1 else: return numero * factorialRecursivo(numero - 1) print(factorialRecursivo(5)) # 120 # funciones de orden superior # utilizar funciones como parámetros # yo tengo una función procesar que tiene dos parámetros # una función y un número def procesar(funcion, numero): return funcion(numero) def cuadrado(numero): return numero**2 def doble(numero): return numero*2 print(procesar(cuadrado,3)) # cuadrado es un parámetro print(procesar(doble,3)) # doble es un parámetro