Calculadora de Parley en Python


si no te funcona aqui esta con python2.7  https://stickybitshell.wordpress.com/2015/12/10/calculadora-de-parley-editada/

Pues si calculadora de de parley en python aunque no me gustaría mezclar este Blog con cosas que tengan que ver con apuestas o algo parecido, me gustaría compartir el código que hice para mi personalmente en python nada fuera de este mundo pero cada vez fui  mejorandolo un poco para probar lo que iba aprendiendo, nada mejor que un ejemplo real y practico que no exista para ver que hemos aprendido, algo así como ejercicio tipo examen.

En realidad el siguiente código no es tan complejo pero usa algunas funciones interesantes que vi con java hace algunos días cundo me toco solucionar un problema de una practica para ese  lenguaje. el código es el que sigue:


monto = int(input("escriba monto a jugar: \n"))
log1=log2=log3=log4=log5=log6=log7=log8=0
log1 = int(input("escriba el primer logro: \n"))
log2 = int(input("escriba el segundo logro: \n"))
log3 = int(input("escriba el tercer logro: \n"))
log4 = int(input("escriba el cuarto logro: \n"))
log5 = int(input("escriba el quinto logro: \n"))
log6 = int(input("escriba el sexto logro: \n"))
log7 = int(input("escriba el septimo logro: \n"))
log8 = int(input("escriba el octavo logro: \n"))
logros=[log1,log2,log3,log4,log5,log6,log7,log8]
num=[]
cantidad_de_logros = len(logros)
i = 0
for i in range(0,cantidad_de_logros):
  if logros[i]>= 0:
    LOG=(1+(logros[i]/100.0000))
    num.append(LOG)
  else:
    logros[i]= logros[i]*(-1)
    LOG=(1+(100.0000/logros[i]))
    num.append(LOG)
  i+=1
premio=monto*(num[0])*(num[1])*(num[2])*(num[3])*(num[4])*(num[5])*(num[6])*(num[7])
print premio

De verdad podría mejorarse mucho este código, incluso me gustaría pasarlo a Django, actualmente estoy trabajando en eso poco a poco, ya lo tengo casi listo pero todavía tengo algunos problemas con las vistas, pero nada que no necesite paciencia y constancia…..

Explico un poquito el código para los que no están muy empapados con el lenguaje:

monto = int(input("escriba monto a jugar: \n"))

Pide por teclado que se escriba el monto a jugar, int declara que es un entero…

log1=log2=log3=log4=log5=log6=log7=log8=0

Declaramos  todos los logros en 0 y luego pedimos los valores de cada uno de estos por teclado…. Hasta log8 pedimos los logros por teclado

logros=[log1,log2,log3,log4,log5,log6,log7,log8]

En esta linea creamos una lista con cada logro antes pasado por teclado, ahora creamos otra lista en blanco para hacer unas operaciones un poco tediosas pero sencillas…..

cantidad_de_logros = len(logros)
i = 0
while i <= cantidad_de_logros:

Ahora contamos los logros en la lista con len, y creamos i en 0, luego creamos un ciclo que se repita hasta i ya que colocamos i <= cantidad de logros o i <= len(logros)…..

 
if logros[i]>= 0:
    LOG=(1+(logros[i]/100.0000))
    num.append(LOG)

Si logros[i] es mayor o igual a 0 hacer la siguiente ecuación con el valor que se encuentra en la lista, al resultado lo llamamos LOG y lo ingresamos en la lista vacía, exactamente en la ultima posición…

 
else:
    logros[i]= logros[i]*(-1)
    LOG=(1+(100.0000/logros[i]))
    num.append(LOG)

Ya que no hay otra posibilidad solo que el numero sea negativo solo decimos else y repetimos lo anterior pero para los negativos….

cerramos el ciclo con “””i+=1″”” que lo que nos esta diciendo que cuando llegue a esta linea se incremente “”i”” y al evaluar la posición continué  si es apropiado y si no siga  a la siguiente linea…. que no es mas que una ecuación y un print….

A medida que escribí la entrada vi que se podía escribir el código de otra manera por ejemplo pedir el logro con un ciclo para hacerlo mas compacto e ingresarlo directamente a la lista logros vacía, al igual que no contar los logros si no que trabajar directamente sobre la lista, también podríamos agregar una excepción que al no ingresar nada en logros lo haga cero “0” directamente(esto no existe) o al ingresar una letra o string diga ingrese un valor correcto y pregunte de nuevo, por eso seria mas fácil con el ciclo… se que no es muy difícil mas bien creo que sencillo pero ahora mismo no lo puedo hacer… a ver quien me echa ese cable y así aprendemos mas entre todos…. a eso ya existe python entre todos….. saludos y espero que te allá sido agradable el post

 

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s