Autor
|
Tema: ayuda con funciones recursivas en python (Leído 4,807 veces)
|
wolfblood
Desconectado
Mensajes: 7
|
|
|
« Última modificación: 10 Octubre 2022, 01:37 am por MCKSys Argentina »
|
En línea
|
|
|
|
|
wolfblood
Desconectado
Mensajes: 7
|
esque tengo que hacer esto mira:
escribir un programa que lea numeros ingresados y luego devuelva el total se deve desarrollar utilazando recursión. no se puede utilizar ciclos se ingrasan numeros hasta que el usuario ingrese espacio si el primer input es un espacio deve imprimir 0
y tengo esto escrito en codigo y es lo que llevo pero nose si voy bien :
def sumar(lista): if len(lista) == 1: print(lista[0]) return lista[0] else: print(lista[0]) return lista[0] + sumar(lista[1:])
listaNumeros = [] valor=int(input("ingresa un valor:")) if valor != 0: listaNumeros.append(valor) print("Total Sumado: ", sumar(listaNumeros))
ojo no estoy pidiendo la solución solo quiero saber si voy bien encaminado o no
|
|
« Última modificación: 10 Octubre 2022, 02:17 am por wolfblood »
|
En línea
|
|
|
|
wolfblood
Desconectado
Mensajes: 7
|
actualizacion de mi codigo:
""" escribir un programa que lea numeros ingresados y luego devuelva el total se deve desarrollar utilazando recursión. no se puede utilizar ciclos se ingrasan numeros hasta que el usuario ingrese espacio si el primer input es un espacio deve imprimir 0 """
def sumar(lista): if len(lista) == 1: print(lista[0]) return lista[0] else: print(lista[0]) return lista[0] + sumar(lista[1:])
listaNumeros = [] valor=int(input("ingresa un valor:")) if valor != 1: listaNumeros.append(valor) elif valor == " ": print("0")
print("Total Sumado: ", sumar(listaNumeros))
literal funciona pero no se como hacer que vuelva a pedir el valor para poder sumar sin utilizar algún ciclo
|
|
|
En línea
|
|
|
|
MCKSys Argentina
|
literal funciona pero no se como hacer que vuelva a pedir el valor para poder sumar sin utilizar algún ciclo
Hola! Revisa el siguiente código: from six.moves import input # Utilizo este modulo para tener compatibilidad entre python 2 y 3 def sumatoria_recursiva (): # Funcion recursiva valor = str(input('Ingresa un valor:')) # Pide valor al usuario if valor.isdigit(): # Si lo ingresado es un numero, entonces... return int(valor) + sumatoria_recursiva() # devuelve la suma de dicho valor MAS lo que devuelva el llamado de la funcion en forma recursiva elif valor == ' ': # Si el valor es espacio, entonces... return 0 # la funcion devuelve cero (en una suma, el cero es neutro) print ('La sumatoria de los enteros ingreados es de {}'.format(sumatoria_recursiva())) # Aca inicia el llamado a la funcion
Para que entiendas cómo va funcionando, te recomiendo debuggear el codigo en un IDE, como por ej.: PyCharm (edicion comunitaria). Saludos!
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
Danielㅤ
Conectado
Mensajes: 1.837
🔵🔵🔵🔵🔵🔵🔵
|
Hola, yo no se porque usan librerías con códigos tan simples que no necesitan el uso de ellas, aunque en python existe la ventaja de que se puede importar sólo una parte de la librería y no todas sus funciones.
Por ejemplo también he visto códigos que utilizan expresiones regulares con operaciones muy simples, que tranquilamente, se pueden usar funciones tipo método para recortar u obtener la parte deseada de una cadena de caracteres. En mis tiempos cuando programaba jamás usaba expresiones regulares porque simplemente no las necesitaba y el patron que queria obtener lo obtenía usando métodos.
En este caso es usar una función recursiva que la misma no es mas que una función que se llama a si misma tratándose como si la función fuera un bucle que repite el procedimiento hasta cierto momento.
Saludos
|
|
|
En línea
|
|
|
|
reymosquito
Desconectado
Mensajes: 81
|
tampoco entiendo el uso de bibliotecas innecesarias en algunos casos, pero... re como muchos módulos te ahorran tiempo en cosas que ya están escritas. y las funciones recursivas bien implementadas ahorran memoria, claro que para eso, no hay que usarlas para huevadas.
|
|
|
En línea
|
|
|
|
MCKSys Argentina
|
Hola! El paquete six lo puse porque no sé si está programando en python 2 o 3. Como six provee compatibilidad para ambas versiones, lo puse. Pero el comentario en mi código dice que sólo se usa por compatibilidad. Despues de todo, input sólo está en python3. En python 2 sería raw_input: https://six.readthedocs.io/Tampoco soy de agregar libs sin necesidad, pero la compatibilidad, para mí, es esencial. Saludos!
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Python, funciones o libreria ?
Scripting
|
EvilGoblin
|
2
|
6,615
|
11 Julio 2010, 20:35 pm
por xーいぱ
|
|
|
[Python] - Funciones
« 1 2 »
Scripting
|
Meta
|
10
|
6,195
|
26 Noviembre 2010, 00:39 am
por Meta
|
|
|
[Python] Importar Funciones de C++ a Modulo de Python
Scripting
|
Di6it4Lj4ck4L
|
2
|
4,332
|
2 Mayo 2011, 19:08 pm
por Di6it4Lj4ck4L
|
|
|
Claves foráneas recursivas en Laravel
Bases de Datos
|
Patrick Bateman
|
0
|
3,624
|
6 Abril 2017, 20:48 pm
por Patrick Bateman
|
|
|
Funciones void en python
Scripting
|
SERGIO_@PRENDE
|
1
|
3,108
|
27 Septiembre 2021, 07:25 am
por Danielㅤ
|
|