elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Aprendiendo Python ejercicio sobre desgloce de dinero con sentencia if [RESUELT]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Aprendiendo Python ejercicio sobre desgloce de dinero con sentencia if [RESUELT]  (Leído 5,095 veces)
jesslandero2

Desconectado Desconectado

Mensajes: 16


La vida es un sin fin de aprendizaje


Ver Perfil
Aprendiendo Python ejercicio sobre desgloce de dinero con sentencia if [RESUELT]
« en: 22 Octubre 2017, 03:44 am »

Hola buen dia

Hace unos dias empece aprender python, apenas voy en las primeras paginas de un par de libros, recien empiezo con las estructuras de control, en este caso con la sentencia IF. Bien el ejercicio en el que estoy es un scrip que pida un numero (dinero), el codigo tiene que hacer el desgloce de acuerdo al valor de algunos billetes y monedas, en este caso de billetes de 500, 200, 100, 50, 20, 10 y monedas de 5, 2, 1

Se que deben de haber varias formas para hacerlo, yo sin mucha experiencia en programacion se me ocurrio de esta manera:

Código
  1. #Este programa simula es desgloce de caja
  2. #El usuario va a introducir una cantidad de dinero cualquiera, el desgloce se debe hacer
  3. #con billetes de 500 200 100 50 20 10 y modenas de 5 y 2
  4.  
  5. #b500, b200, b100.... son los billetes y sus denominaciones
  6. #m5, m2, m1... son las variables que representan monedas.
  7.  
  8. print(" C A J A ")
  9. print(" ")
  10.  
  11. dinero=int(input("Entre la cantidad total de dinero: "))  #Leer la cantidad total de dinero
  12.  
  13.  
  14. if dinero > 0 :
  15. b500=dinero//500 #Se divide el total de dinero entre el billete mas alto
  16. b200=(dinero%500)//200
  17. b100=((dinero-(b500*500)-(b200*200))%200)//100  #apartir de aqui restare los billetes
  18. b50=((dinero-(b500*500)-(b200*200)-(b100*100))%100)//50 #que ya desgloce para que con el
  19. b20=((dinero-(b500*500)-(b200*200)-(b100*100)-(b50*50))%50)//20 #resto siga obteniendo
  20. b10=((dinero-(b500*500)-(b200*200)-(b100*100)-(b50*50)-(b20*20))%20)//10 #valores
  21. m5=((dinero-(b500*500)-(b200*200)-(b100*100)-(b50*50)-(b20*20)-(b10*10))%10)//5
  22. m2=((dinero-(b500*500)-(b200*200)-(b100*100)-(b50*50)-(b20*20)-(b10*10)-(m5*5))%5)//2
  23. m1=((dinero-b500-b200-b100-b50-b20-b10-m5-m2)%2)//1 #Todo lo que sobre seran las unidades
  24.  
  25. if b500>=1:
  26. print("b500 ",b500)
  27. if b200>=1:
  28. print("b200 ",b200)
  29. if b100>=1:
  30. print("b100 ", b100)
  31. if b50>=1:
  32. print("b50 ", b50)
  33. if b20>=1:
  34. print("b20 ", b20)
  35. if b10>=1:
  36. print("b10 ", b10)
  37. if m5>=1:
  38. print("m5 ", m5)
  39. if m2>=1:
  40. print("m2 ", m2)
  41. if m1>=1:
  42. print("m1 ", m1)
  43.  
  44. if dinero < 0:
  45. print("El numero tiene que ser positivo")
  46.  
  47. if dinero == 0:
  48. print("El numero que escribio es CERO")
  49.  
  50.  

Me podrian compartir que tan bien o que tan mal esta mi codigo, o alguna otra forma de poder llegar al resultado.

Gracias.


« Última modificación: 23 Octubre 2017, 23:49 pm por jesslandero2 » En línea

"La física es el sistema operativo del Universo"

                                        Steven R Garman
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Aprendiendo Python [ejercicio sobre desgloce de dinero con sentencia if]
« Respuesta #1 en: 22 Octubre 2017, 04:13 am »

 vas bien, pero puedes ser màs eficiente y legible si haces

Código
  1. b500=dinero//500
  2. dinero = dinero - b500
  3. b200=dinero//200

así te ahorras instrucciones matemáticas y haces el código muchisimo más legible


los if sería mejor que fueran

Código
  1. if dinero > 0 :
  2.  #codigo si es mayor que cero
  3. elif dinero < 0:
  4.  #codigo si es menor que cero
  5. else:
  6.  #si no cumple las condiciones anteriores
  7.  

el //1 es innecesario (todo entre 1 es 1 y aquí solo manejas enteros


hay algunas cositas que podrìas hacer adicional para resumir el código, pero es manejo un poco más avanzado de strings


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
jesslandero2

Desconectado Desconectado

Mensajes: 16


La vida es un sin fin de aprendizaje


Ver Perfil
Re: Aprendiendo Python [ejercicio sobre desgloce de dinero con sentencia if]
« Respuesta #2 en: 23 Octubre 2017, 00:55 am »

Gracias por lo de las sentencias ELIF

Tengo una duda con esto:
Citar
Citar
    b500=dinero//500
    dinero = dinero - b500
    b200=dinero//200

por ejemplo si mi total es 850 donde b500=1 luego en:
dinero=dinero-b500
quedaria:
dinero=850-1

solo se le restaria 1 no los 500 como tal, o lo estoy entendiendo mal??
En línea

"La física es el sistema operativo del Universo"

                                        Steven R Garman
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Aprendiendo Python [ejercicio sobre desgloce de dinero con sentencia if]
« Respuesta #3 en: 23 Octubre 2017, 01:33 am »

estás entendiéndolo bien! era para probarte (XD mentira XD me equivoqué yo)

Código
  1.    b500=dinero//500
  2.    dinero = dinero*500 - b500
  3.    b200=dinero//200
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
jesslandero2

Desconectado Desconectado

Mensajes: 16


La vida es un sin fin de aprendizaje


Ver Perfil
Re: Aprendiendo Python [ejercicio sobre desgloce de dinero con sentencia if]
« Respuesta #4 en: 23 Octubre 2017, 02:10 am »

Disculpa pero:

Citar

b500=dinero//500
dinero = dinero*500 - b500
b200=dinero//200

con el ejemplo de dinero=850
 seria dinero=850*500-1

no tendría por que multiplicar la variable inicial por el valor de 500
En línea

"La física es el sistema operativo del Universo"

                                        Steven R Garman
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Aprendiendo Python [ejercicio sobre desgloce de dinero con sentencia if]
« Respuesta #5 en: 23 Octubre 2017, 02:43 am »

XD sorry ando super distraido hoy


lo que tienes que restar del dinero es los billetes de 500 XD así que es la cantidad de billetes de 500 multiplicado por 500 (que es su valor)
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
jesslandero2

Desconectado Desconectado

Mensajes: 16


La vida es un sin fin de aprendizaje


Ver Perfil
Re: Aprendiendo Python [ejercicio sobre desgloce de dinero con sentencia if]
« Respuesta #6 en: 23 Octubre 2017, 03:00 am »

ok ok

Gracias, toda ayuda es muy buena. Saludos.
En línea

"La física es el sistema operativo del Universo"

                                        Steven R Garman
ak437

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Aprendiendo Python ejercicio sobre desgloce de dinero con sentencia if [RESUELT]
« Respuesta #7 en: 9 Noviembre 2017, 01:33 am »

Cuales son los libros que utilizas? estoy interesado en aprender python y hay demasiada informacion que al principio marean un poco jaja
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Aprendiendo en Python
Scripting
z3r0s 2 5,437 Último mensaje 27 Enero 2006, 15:28 pm
por Ragnarok
Sentencia definitiva: las entidades tendrán que devolver el dinero que ...
Noticias
wolfbcn 0 1,524 Último mensaje 14 Noviembre 2011, 21:47 pm
por wolfbcn
Aprendiendo Python, algunas dudas.
Scripting
orocrux 5 3,312 Último mensaje 5 Enero 2015, 20:40 pm
por Yidu
Aprendiendo PYTHON desde cero. L29.
Scripting
ViejoMajara 5 4,541 Último mensaje 21 Marzo 2015, 17:50 pm
por LaThortilla (Effort)
MOVIDO: Aprendiendo PYTHON desde cero. L29.
Programación General
Eleкtro 0 2,001 Último mensaje 16 Marzo 2015, 20:52 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines