Python - Recursividad y Listas

 
Vista:

Recursividad y Listas

Publicado por Maximiliano Rodrigo (1 intervención) el 23/03/2016 11:53:08
Hola a todos, tengo este problema. Tengo que hacer un programa con una recursión que valla creando una lista desde un numero A a uno B y luego la retorne.
Lo hago con el código que está en el screen y devuelve un None, pruebo antes la variable C con un print y en teoría tiene la lista completa.

6NVvqmQ

Muchas gracias desde ya.

Sigo probando y me doy cuanta que no es la lista, sino que directamente no me retorna ni probando con un 1

fsnRhLe
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
Imágen de perfil de Jorge De Los Santos
Val: 77
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Recursividad y Listas

Publicado por Jorge De Los Santos (54 intervenciones) el 23/03/2016 21:34:51
Hola,


En tu elif deberías retornar la llamada a la función, porque si no Python interpreta que cada llamada es "independiente" debido a que no retornas nada. Es decir:

1
2
3
4
5
.
.
.
elif a<b:
    return funcionNoIter(a+1, b, c)



Saludos.

Pedro Jorge De Los Santos.
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 Iries David
Val: 2
Ha disminuido su posición en 18 puestos en Python (en relación al último mes)
Gráfica de Python

Recursividad y Listas

Publicado por Iries David (1 intervención) el 10/10/2019 22:38:11
Por si a alguien le sirve, es como dice Pedro Jorge De Los Santos, se debe poner return al final de la función, independientemente de si ya lo tienes en la condición de a==b, tu código quedaría así:

1
2
3
4
5
6
7
8
9
10
def better_solution(a,b,c):
    if a > b:
        return c
    elif a <= b:
        c.append(a)
        better_solution(a+1,b,c)
    return c
 
list=[]
print(better_solution(1,5,list))


Saludos,

Iries
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