Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/03/2016, 08:14
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Funcion simple me retorna None

La próxima vez, por favor no uses imágenes.

Hay dos problemas en tu código original, el primero y menor es que return no es una función, con lo cual la línea 5 debería ser
Código Python:
Ver original
  1. return c
y no
Código Python:
Ver original
  1. return(c)

El segundo, y la causa de tu problema, es que no estás propagando el valor que devuelve tu función recursiva. Veámoslo con el ejemplo más simple posible: funcionNoIter(1, 2)

1º llamada: a < b, se invoca funcionNoIter(2, 2)
2º llamada: a == b, se devuelve 1

El problema es que ese 1 devuelto por la segunda llamada a funcionNoIter no es a su vez devuelto por la primera, con lo cual no llega a la llamada original. Es como si escribieras
Código Python:
Ver original
  1. elif a < b:
  2.     1
cuando lo que deberías escribir es
Código Python:
Ver original
  1. elif a < b:
  2.     return 1
La solución al problema es escribirlo como
Código Python:
Ver original
  1. elif a < b:
  2.     return funcionNoIter(a+1, b, c)
En Python, las funciones que no tienen un valor de retorno devuelven None.


Saludos.