Underc0de

Programación Scripting => Python => Mensaje iniciado por: D3ivid en Marzo 02, 2015, 07:13:53 AM

Título: Ejercicio 39 del libro "Introduccion a la programacion con python"
Publicado por: D3ivid en Marzo 02, 2015, 07:13:53 AM
(http://i1352.photobucket.com/albums/q655/thedeskgeek/python-logo-master-v3-TMcopy_zpsc29570ab.png)

Buenas, este será el comienzo de una serie de ejercicios del libro mencionado en el titulo, en el cual pondré el codigo de los ejercicios resueltos, bien para que los comenteis, critiqueis,  debatais  y corrigais si asi lo estimais oportuno, los código son básicos, pero si de los miles de usuarios que miran en el foro aunque sea a uno le sirve... entoces merece la pena. Bueno al lio.

ejer.39 Haz un programa que pida al usuario una cantidad de euros, una tasa de interés, y unos años. Muestra en pantalla el resultado del capital transcurrido esos años.

Hemos de saber que formula es C*(1+x/100)**n en Euros   Para el que no sepa en python * (multiplicación)  ** (elevado)

Código (python) [Seleccionar]

# Capital obtenido

cantidad=float(raw_input("Ponga que cantidad desea destinar a la inversion"))
interes=float(raw_input("Seleccione el inter?s acordado sin el signo %"))
tiempo=float(raw_input("Tiempo en a?os de la inversion"))


#Recuerda que un capital de C euros a un inter?es del x por cien durante n a?nos se convierten
#en C ? (1 + x/100)n euros.
cantidad_final=int(cantidad*(1+interes/100)**tiempo)
beneficio= int(cantidad_final-cantidad)

print "El capital al final del transcurso es ",cantidad_final,
print "habiendo incrementado el patrimonio en ",beneficio,"?"


Espero os guste y que el código me haya quedado bien por que es mi primera vez un saludo underc0ders :)


Pd. Quien no sepa nada sobre python y/o programación y desea aprender el libro está en http://biblioteca.underc0de.org/?dir=PROGRAMACION/PYTHON/ (http://biblioteca.underc0de.org/?dir=PROGRAMACION/PYTHON/) Cualquier duda o reflexión aqui estamos
Título: Re:Ejercicio 39 del libro "Introduccion a la programacion con python"
Publicado por: feric en Marzo 02, 2015, 12:32:15 PM
Hola windux, es bueno que coloques ejemplos del libro que recomiendas, respecto a tu código, yo lo haría de la siguiente forma (respondo entre líneas)

Código (python) [Seleccionar]
#Usaría input en vez de raw_input porque solamente cachas números

cantidad=input("Ponga que cantidad desea destinar a la inversion")
interes=input("\nSeleccione el inter?s acordado sin el signo %")
tiempo=input("\nTiempo en a?os de la inversion")


#Recuerda que un capital de C euros a un interés del x por cien durante n a?nos se convierten
#en C ? (1 + x/100)n euros.

#Vas a realizar una operación de los valores que ingreso el usuario, pero como manejas divisiones, obviamente requieres un cierto nivel de precisión para el manejo de decimales, es por eso que, se divide el interés entre 100.0, cuando a un entero le agregas el .0(punto 0), hace el cast automático a float.

cantidad_final=cantidad*(1+interes/100.0)**tiempo
beneficio=cantidad_final-cantidad

#Y al final como veo que lo quieres imprimir redondeado, pues haces el cast de la variable con int(variable)
print "\nEl capital al final del transcurso es ",int(cantidad_final),"\n"
print "habiendo incrementado el patrimonio en ",int(beneficio),"?"



Título: Re:Ejercicio 39 del libro "Introduccion a la programacion con python"
Publicado por: D3ivid en Marzo 02, 2015, 12:39:46 PM
Gracias por el aporte feric, lo tendré en cuenta :)
Título: Re:Ejercicio 39 del libro "Introduccion a la programacion con python"
Publicado por: blozzter en Marzo 02, 2015, 02:16:38 PM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Hola windux, es bueno que coloques ejemplos del libro que recomiendas, respecto a tu código, yo lo haría de la siguiente forma (respondo entre líneas)

Código (python) [Seleccionar]
#Usaría input en vez de raw_input porque solamente cachas números

cantidad=input("Ponga que cantidad desea destinar a la inversion")
interes=input("\nSeleccione el inter?s acordado sin el signo %")
tiempo=input("\nTiempo en a?os de la inversion")


#Recuerda que un capital de C euros a un interés del x por cien durante n a?nos se convierten
#en C ? (1 + x/100)n euros.

#Vas a realizar una operación de los valores que ingreso el usuario, pero como manejas divisiones, obviamente requieres un cierto nivel de precisión para el manejo de decimales, es por eso que, se divide el interés entre 100.0, cuando a un entero le agregas el .0(punto 0), hace el cast automático a float.

cantidad_final=cantidad*(1+interes/100.0)**tiempo
beneficio=cantidad_final-cantidad

#Y al final como veo que lo quieres imprimir redondeado, pues haces el cast de la variable con int(variable)
print "\nEl capital al final del transcurso es ",int(cantidad_final),"\n"
print "habiendo incrementado el patrimonio en ",int(beneficio),"?"


Yo creo que ahí ya depende de la lógica que se quiera implementar.
Cada entrada está asociada a un tipo de dato (entero, decimal, etc.). Eso el programador o el cliente lo define.

En entradas del tipo variable = float(raw_input(...)) podemos dividir sin problemas por un valor entero, Ej: variable / 100   y no habrá problema con el manejo de decimales.

Saludos