Google+ Seguidores

lunes, 14 de abril de 2014

Ejercicios en python (parte 4)

    19

Ejercicios en python (parte 4)
Buscando algunos ejercicios como para arrancar la semana, me encontré algunos hechos en C++ (nosotros los haremos en python)  que me parecieron bastante
entretenidos y desafiantes para los que recién están comenzando.
Como siempre primero propongo los ejercicios y luego en otra entrada publicaré mis soluciones.

Ejercicios en python

1) Este programa pide primeramente la cantidad total de compras de una persona. Si la cantidad es inferior a $100.00, el programa dirá que el cliente no aplica a la promoción. Pero si la persona ingresa una cantidad en compras igual o superior a $100.00, el programa genera de forma aleatoria un número entero del cero al cinco. Cada número corresponderá a un color diferente de cinco colores de bolas que hay para determinar el descuento que el cliente recibirá como premio. Si la bola aleatoria es color blanco, no hay descuento, pero si es uno de los otros cuatro colores, sí se aplicará un descuento determinado según la tabla que  aparecerá, y ese descuento se aplicará sobre el total de compra que introdujo inicialmente el usuario, de manera que el programa mostrará un nuevo valor a pagar luego de haber aplicado el descuento.

Ejemplo ejercicio 1

2) De la galería de productos, el usuario introducirá el código y el número de unidades del producto que desea comprar. El programa determinará el total a pagar, como una factura.
Una variante a este ejercicio que lo haría un poco más complejo sería dar la posibilidad de seguir ingresando diferentes códigos de productos con sus respectivas cantidades, y cuando el usuario desee terminar el cálculo de la factura completa con todas sus compras. Te animas??

Ejemplo ejercicio 2

3) Este programa muestra primero el listado de categorías de películas y pide al usuario que introduzca el código de la categoría de la película y posterior a ello pide que el usuario introduzca el número de días de atraso, y así se muestra al final el total a pagar.

Ejemplo ejercicio 3

Por ahora dejo estos 3 ejercicios como para ir pensando un poco. Espero sus soluciones.

Saludos

19 comentarios:
Write comentarios
  1. El primero ...

    import random

    def main():
    cantidad = input('\nINTRODUZCA LA CANTIDAD TOTAL DE LA COMPRA: ')

    #creamos dicionarios con los colores y valores de los descuentos
    descuentos = {"BLANCA":"NO TIENE" , "ROJA": 10, "AZUL": 20, "VERDE": 25, "AMARILLA": 30}

    #verificamos si la cantidad es mayor de 100
    if cantidad >= 100:
    cabeza = ' COLOR DESCUENTO\n'
    print '\n', cabeza

    #imprimir opciones
    for key, value in descuentos.items():
    resultado = ' BOLA '+str(key) + '..............' + str(value) + ' DESCUENTO'
    print resultado

    print "\nSU GASTO IGUALA O SUPERA LOS $100.00 Y POR TANTO PARTICIPA EN LA PROMOCION."

    #realizamos una lista con los colores de las bolas
    bolas = []
    for key in descuentos:
    bolas += [key]

    #realizamos el sorteo
    bola = bolas[random.randrange(len(bolas))]
    print "\nALEATORIAMENTE USTED OBTUVO UNA BOLA", bola

    #aplicamos el descuento segun el sorteo
    if bola == 'BLANCA':
    print "\nNO TIENE DESCUENTO\n"
    else:
    total = cantidad - (cantidad * (descuentos[bola]*.01))
    print "\nSU NUEVO TOTAL A PAGAR ES: $",total,'\n'

    else:
    print "\nNO PUEDE PARTICIPAR EN EL SORTEO YA QUE SU GASTO ES MENOR QUE 100\n"

    seguir()

    def seguir():
    #pregunatamos si quiere retornar
    opcion = input('SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: ')

    if opcion == 1:
    main()
    else:
    print "\nHASTA LUEGO \n"

    main()

    ResponderEliminar
  2. aca otra opcion para los mas principiantes usando if, elif, else;
    ej1:
    import random
    bola1="BOLA BLANCA 0%" #DEFINIMOS LA "TABLA DE DESCUENTOS"
    bola2="BOLA ROJA 10 %"
    bola3="BOLA AZUL 20%"
    bola4="BOLA VERDE 25%"
    bola5="BOLA AMARILLA 50%"


    def promo():#CREAMOS LA FUNCION PROMO
    precio=int(input("INGRESE EL MONTO: "))#GUARDAMOS EN LA VARIABLE PRECIO EL MONTO DE LA COMPRA

    if precio >=100000:# SI PRECIO ES MAYOR O IGUAL A 100000
    a = random.randrange(1, 6, 1) #ELEGIMOS UN NUMERO ALEATORIO ENTRE 1 Y 5
    blanca=1#GUARDAMOS LOS NUMEROS ASIGNADOS A LOS COLORES
    roja=2
    azul=3
    verde=4
    amarilla=5
    print("%25s" % bola1)#ACA MOSTRAMOS LA "TABLA DE DESCUENTOS"
    print("%25s" % bola2)
    print("%25s" % bola3)
    print("%25s" % bola4)
    print("%25s" % bola5)
    print(a)

    if blanca ==a: #SI EL NUMERO ALEATORIO ES IGUAL A 1 NO SE APLICARA LA PROMOCION
    print("SALIO LA BOLA BLANCA NO SE APLICARA LA PROMOCION")

    if roja==a: #SI LA NUMERO ALEATORIO ES IGUAL A 2 SE APLICA EL DESCUENTO
    calc=precio*0.10
    calc1=precio-calc
    print("EL TOTAL A PAGAR ES ",calc1)

    if azul==a: #SI LA NUMERO ALEATORIO ES IGUAL A 3 SE APLICA EL DESCUENTO
    calc=precio*0.20
    calc1=precio-calc
    print("EL TOTAL A PAGAR ES ",calc1)

    if verde==a: #SI LA NUMERO ALEATORIO ES IGUAL A 4 SE APLICA EL DESCUENTO
    calc=precio*0.25
    calc1=precio-calc
    print("EL TOTAL A PAGAR ES ",calc1)

    if amarilla==a: #SI LA NUMERO ALEATORIO ES IGUAL A 5 SE APLICA EL DESCUENTO
    calc=precio*0.50
    calc1=precio-calc
    print("EL TOTAL A PAGAR ES ",calc1)


    else: #SI PRECIO ES MENOR A 100000 NO SE APLICA LA PROMOCION
    print("NO SE APLICARA LA PROMOCION")

    promo()

    ResponderEliminar
  3. aca muestro una solucion sencilla pero funcional. Se puede ingresar los productos que desee hasta que el usuario pare el bucle. Se podria mejorar pero bueno, en fin
    EJ2:
    print ("ELIJA EL PRODUCTO DESEADO") #MOSTRAMOS LA TABLA DE PRODUCTOS
    print ("")
    print ("PRODUCTO CODIGO")
    print ("")
    print ("CAMISA........................... 1")
    print ("CINTURON......................... 2")
    print ("ZAPATOS.......................... 3")
    print ("PANTALON......................... 4")
    print ("CALCETINES....................... 5")
    print ("FALDAS........................... 6")
    print ("GORRAS........................... 7")
    print ("SUETER........................... 8")
    print ("CORBATA.......................... 9")
    print ("CHAQUETA......................... 10")
    print ("")



    def factura():
    ter="a"#DEFINIMOS VARIABLE
    li=[]#CREAMOS UNA LISTA
    productos={1:100,2:125,3:34,4:45,5:454,6:45,7:10,8:54,9:444,10:45}#DICCIONARIO DE PRODUCTOS
    while ter=="a":#SI WHILE ES IGUAL A "a" CONTINUA EL BUCLE
    codigo=int(input("INGRESE EL codigo: "))#PEDIMOS EL CODIGO Y LO ALMACENAMOS
    cantidad=int(input("INGRESE la cantidad: "))#PEDIMOS LA CANTIDAD
    ter=input("Si desea terminar percione 'S' sino 'A': ")#"PARA TERMINAR PRECIONE "S"
    total=cantidad*(productos[codigo])#MULTIPLICAMOS LA CANTIDAD X EL VALOR DEL PRODUCTO
    li.append(total)#AGREGAMOS EL TOTAL A UNA LISTA

    suma=0#DEFINIENDO VARIABLE
    indice=0#DEFINIENDO VARIABLE

    while indice<len(li):#TERMINAR EL BUCLE CUANDO LLEGUE A LA CANTIDAD DE PRODUCTOS QUE SE ENCUENTRAN EN LA LISTA "LI"
    suma=suma+li[indice]#SUMAMOS LOS ELEMENTOS DE LA LISTA
    indice=indice+1#SUMAMOS 1 A LA VARIABLE INDICE(CUANDO LLEGUE A LA CANTIDAD DE PRODUCTOS DE LA LISTA LI SE TERMINA EL BUCLE)

    print("EL TOTAL ES",suma)#MOSTRAMOS EL TOTAL

    factura()

    ResponderEliminar
  4. Esta en python 3.4
    saludos

    ResponderEliminar
    Respuestas
    1. Eso te iba a preguntar, porque me daba error con esta linea:
      ter=raw_input("Si desea terminar percione 'S' sino 'A': ")#"PARA TERMINAR PRECIONE "S"

      En python 2.7 cambié por raw_input, porque espera un entero y se le pasa un string.

      Saludos

      Eliminar
  5. Yo resolvi el ejercicio numero 2 e incluso el usuario puede seguir comprando y al final se suma todo lo que ha comprado:

    import random

    total = []

    def main():
    ----cProductos = {'CAMISA/S': 1, 'CINTURON/ES': 2,
    'ZAPATOS': 3, 'PANTALON/ES': 4,
    'CALCETINES': 5, 'FALDA/S': 6,
    'GORRA/S': 7, 'SUETER/S': 8,
    'CORBATA/S': 9, 'CHAQUETA/S': 10

    }

    pProductos = {'CAMISA/S':25, 'CINTURON/ES':15,
    'ZAPATOS':50, 'PANTALON/ES':30,
    'CALCETINES':5, 'FALDA/S':45,
    'GORRA/S':20, 'SUETER/S':8,
    'CORBATA/S':15, 'CHAQUETA/S':70

    }

    #Imprimir las opciones
    ----def opciones():
    --------print 'ELIJA EL PRODUCTO DESEADO:\n'
    --------print 'Producto' + ' ' + 'CODIGO'

    --------for key, value in cProductos.items():
    ------------resultados = ' ' + str(key) + ' .................... ' + str(value)
    ------------print resultados

    ----opciones()

    #Solicitar codigo y calcular precio
    ----def codigos():
    --------codigo = input('INTRODUCE EL CODIGO: ')
    --------for producto, code in cProductos.items():
    ------------if code == codigo:
    ----------------l = producto

    --------precio = []
    --------for i, value in pProductos.items():
    ------------if i == l:
    ----------------print 'EL PRECIO ES: ',value,'$'
    ----------------precio.append(value)

    --------print 'INTRODUZCA CUANTAS ',l,' QUIERE LLEVAR: '
    --------cantidad = input()

    --------total.append(sum(cantidad * precio))

    --------eleccion = raw_input('SI QUIERES SEGUIR COMPRANDO PRESIONA S SINO PRESIONA OTRA TECLA: ')

    --------if eleccion == 's':
    ------------opciones()
    ------------codigos()
    --------else:
    ------------print 'EL TOTAL A PAGAR ES ',(sum(total)),'$'

    ----codigos()

    main()

    ResponderEliminar
    Respuestas
    1. No me di cuenta y deje un import que habia usado en otro codigo, puff, bueno igual el codigo es funcional

      Eliminar
  6. #!/usr/bin/env python
    # -*- coding: utf-8 -*-

    import random
    import os


    def clear_screen(): # para limpiar la pantalla
    if os.name == "posix":
    os.system('clear')
    elif os.name == ("ce", "nt", "dos"):
    os.system('cls')


    def dame_datos():
    compra = input('introduzca el total de la compra: ')
    compra = int(compra)

    if compra >= 100:
    print('Su gastos iguala o supera los $100.00 y por tanto participa en la promocion\n')
    print(' COLOR DESCUENTO\n')
    print(' BOLA BLANCA NO TIENE')
    print(' BOLA ROJA 10 POR CIENTO')
    print(' BOLA AZUL 20 POR CIENTO')
    print(' BOLA VERDE 25 POR CIENTO')
    print(' BOLA AMARILLA 50 POR CIENTO\n')

    else:
    print(' su gasto es inferior a $100.00 y no partecipa a la promocion')
    exit()

    return compra


    def calcula_descuento(valor):
    descuento = 0
    lista = ['BLANCA', 'ROJA', 'AZUL', 'VERDE', 'AMARILLA']

    azar = random.choice(lista)

    if azar == 'BLANCA':
    descuento = 'NO TIENE'
    elif azar == 'ROJA':
    descuento = 10
    elif azar == 'AZUL':
    descuento = 20
    elif azar == 'VERDE':
    descuento = 25
    elif azar == 'AMARILLO':
    descuento = 50

    print('Aleatoriamente usted obtuvo una bola %s\n' % azar)

    if azar == 'BLANCA':
    print('LO SENTIMOS. Desafortunatamente no ha obtenido ningun descuento\n')
    else:
    total = valor - (valor * descuento / 100)

    print('Felicidades, ha ganado un %d por ciento de descuento\n' % descuento)
    print('Su nuevo total a pagar es: $%f\n' % total)

    continua = True

    while continua:
    clear_screen()

    compra = dame_datos()

    calcula_descuento(compra)

    continua = input('Si desea salir presione 1 o de lo contrario pesione otra tecla: ')

    if continua == '1':
    continua = False

    ResponderEliminar
    Respuestas
    1. No puedo probar todos los codigos, pero si funcionan ""Felicitaciones"". Saludos

      Eliminar
  7. Para el ejercicio 1:

    import random

    def main():
    cantidad = input('\nINTRODUZCA LA CANTIDAD TOTAL DE LA COMPRA: ')
    if cantidad >= 100:
    print '\nSU GASTO IGUALA O SUPERA LOS 100.00 Y POR TANTO PARTICIPA EN LA PROMOCION'
    aleatorio = random.randint(0,4)
    diccionario = {'BLANCA':'No hay descuento', 'ROJA':10, 'AZUL':20, 'VERDE':25, 'AMARILLA':30}
    listaK = diccionario.keys()
    listaV = diccionario.values()
    if aleatorio == 0:
    print '\n¡¡MALA SUERTE!! LA BOLA BLANCA NO TIENE DESCUENTO'
    else:
    descuento = listaV[aleatorio]
    bola = listaK[aleatorio]
    print '\nHA SACADO LA BOLA %s, POR TANTO HA OBTENIDO UN %d%% DE DESCUENTO!!' %(bola, descuento)
    calculo = cantidad - (cantidad*descuento)/100
    print '\nLA NUEVA CANTIDAD QUE DEBE PAGAR ES %d €\n' %calculo
    else:
    print '\nNO PUEDE PARTICIPAR EN EL SORTEO YA QUE SU GASTO ES MENOR QUE 100\n'

    main()

    ResponderEliminar
    Respuestas
    1. Buen trabajo Jaime. Gracias por visitar el blog.
      Saludos

      Eliminar
  8. #! /usr/bin/env python
    # -*- coding: utf-8 -*-



    from random import choice


    def principal():

    parametro = 100
    dic_bolas = {"Blanca" : "No tiene", "Roja": 10,"Azul":20,"Verde":25,"Amarillo":50}


    Compra = raw_input("Introduzca la Cantidad Total de la compra: \n")

    if int(Compra) >= parametro:

    Random_dato = choice(dic_bolas.keys())
    print "\n Su gasto es igual o superior a los ", parametro, " $ por lo que ha ingresado a la promocion"
    print " \n Color Descuento \n \n"

    for x,y in dic_bolas.iteritems():

    print "Bola ",x," ", y," ", "Por Ciento" if str(y).isdigit() else ""

    print "\n Aleatoriamente usted obtuvo una bola ", Random_dato

    Random_dato_value = dic_bolas[Random_dato]

    if str(Random_dato_value).isdigit():

    print "\n Felicidades, Ha ganado un descuento del %r Por Ciento" %(Random_dato_value)
    print "\n Su nuevo total a pagar es: $ %r" % (int(Compra) * float(100 - Random_dato_value)/100)

    else:

    print "\n Lamentablemente le toco la bola ", Random_dato, " , La misma no posee promoción alguna"

    else:
    print "Su monto de compra de ", Compra, " no alcanza para entrar en ninguna promoción\n"
    answer = raw_input("Desea reevaluar el monto de su compra?, Conteste con si o no \n")
    if answer.lower() == "si":
    principal()
    else:
    print "Adios, Vuelva Prontos!!"
    exit

    principal()

    ResponderEliminar
  9. Aca va el segundo

    def principal():
    list_compras_totales =[]
    list_bolas =[["Camisa",20],["Cinturon",100],["Zapato",40],["Pantalon",30],["Calcetines",10]]
    Starter(list_bolas)


    while Continue(len(list_compras_totales)):
    list_compras_totales.append(Get_buy(list_bolas))

    print "El total a pagar es: $", P_final(list_compras_totales,list_bolas)


    def P_final(lista,BD):
    suma = 0

    for x in range(len(lista)):
    suma += BD[lista[x][0]][1] * lista[x][1]


    return suma

    def Continue(compras):

    if compras == 0:
    return True

    answer = raw_input("\n SI YA TERMINO DE REALIZAR SUS COMPRAS, ESCRIBA 'TERMINE', DE LO CONTRARIO ELEGIRA EL SIGUIENTE PRODUCTO: ").lower()
    if answer != "termine":
    print "\n VAMOS A SELECCIONAR EL PROXIMO ITEM"
    return True
    else:
    return False


    def Get_buy(lista):

    eleccion = int(raw_input("\n INTRODUZCA EL CODIGO: "))
    print "\n EL PRECIO ES $%r" % lista[eleccion-1][1]
    cantidad = int(raw_input("\n INTRODUZCA EL NUMERO DE UNIDADES A COMPRAR: "))
    return (eleccion-1,cantidad)


    def Starter(lista):

    counter = 0
    print "\n ELIJA EL PROUCTO DESEADO:\n "

    for x in lista:
    counter +=1
    print x[0],(60-len(x[0]))* "-",counter


    principal()

    ResponderEliminar
    Respuestas
    1. Buenos códigos Lucas, gracias por visitar y participar en el blog. Saludos

      Eliminar
  10. ### codigo de renta de peliculas

    print "renta de peliculas"
    print " Categoria Precio Codigo Dia de Retraso"
    print ""
    print " Favoritos $2.50 1 $0.50"
    print " Nuevos $3.00 2 $0.75"
    print " Estrenos $3.50 3 $1.00"
    print " SuperEstrenos $4.00 4 $1.50"
    class Peliculas:
    def inventario(self, var):
    self.var = var
    while self.var < 1 or self.var > 4:
    print "escoga numero de codigo correcto",
    self.var = int(input(",intentelo de nuevo: "))
    peliculas = {1:2.50, 2:3.00, 3:3.50, 4:4.00}
    total = peliculas[self.var]
    diasR = {1:0.50, 2:0.75, 3:1.00, 4:1.50}
    dias = int(input("ingrese el numero de dias de retraso: "))
    for x in range(dias):
    total += diasR[self.var]
    print "sus dias de retraso fueron:", dias, "el total a pagar es:", total, "$"

    total = Peliculas()
    print ""
    var = int(input("escoga una categoria por su codigo: "))
    total.inventario(var)

    ResponderEliminar
  11. Este es mi código del primer ejercicio:
    _______________________________________

    import random, time, os
    def promocion(dinero):
    --- if dinero < 100:
    ------ print "SU GASTO NO SUPERA LOS 100 DOLARES Y POR TANTO NO PARTICIPA EN LA PROMOCION"
    --- else:
    ------ print "SU GASTO SUPERA LOS 100 DOLARES Y POR TANTO PARTICIPA EN LA PROMOCION"
    ------ print ""
    ------ print "BOLA BLANCA = NO DESCUENTO"
    ------ print "BOLA ROJA = DESCUENTO 10%"
    ------ print "BOLA AZUL = DESUCENTO 20%"
    ------ print "BOLA VERDE = DESCUENTO 25%"
    ------ print "BOLA AMARILLA = DESCUENTO 50%"
    ------ print ""
    def descuento(bola, dinero):
    --- if dinero >= 100:
    ------ print "SACANDO BOLA . . ."
    ------ time.sleep(5)
    ------ print "HA SACADO . . ."
    ------ time.sleep(3)
    ------ print ""
    ------ if bola == 0:
    --------- print "MALA SUERTE, HA SACADO UNA BOLA BLANCA"
    --------- print "NO TIENE NINGUN DESCUENTO, POR TANTO TIENE QUE PAGAR $", dinero
    ------ elif bola == 1:
    --------- nuevo_dinero = dinero - (dinero * 0.10)
    --------- print "FELICIDADES, HA SACADO UNA BOLA ROJA"
    --------- print "SU NUEVO TOTAL A PAGAR ES $", nuevo_dinero
    ------ elif bola == 2:
    --------- nuevo_dinero = dinero - (dinero * 0.20)
    --------- print "FELICIDADES, HA SACADO UNA BOLA AZUL"
    --------- print "SU NUEVO TOTAL A PAGAR ES $", nuevo_dinero
    ------ elif bola == 3:
    --------- nuevo_dinero = dinero - (dinero * 0.25)
    --------- print "FELICIDADES, HA SACADO UNA BOLA VERDE"
    --------- print "SU NUEVO TOTAL A PAGAR ES $", nuevo_dinero
    ------ else:
    --------- nuevo_dinero = dinero - (dinero * 0.50)
    --------- print "FELICIDADES, HA SACADO UNA BOLA AMARILLA"
    --------- print "SU NUEVO TOTAL A PAGAR ES $", nuevo_dinero
    while True:
    --- cantidad = float(raw_input("INTRUDUZCA LA CANTIDAD TOTAL DE LA COMPRA: "))
    --- color = random.randint(0,5)
    --- promocion(cantidad)
    --- descuento(color, cantidad)
    --- print ""
    --- breaker = int(raw_input("SI DESEA SALIR PRESIONE 1, SI NO LO DESEA ASI PRESIONE OTRO NUMERO: "))
    --- if breaker == 1:
    ------ break
    --- else:
    ------ os.system("clear")

    _______________________________________
    Si usan Windows, solo cambian el "clear" de la ultima línea por "cls", si usan Linux así lo dejan :)

    Sangría o Tabulado de ---

    ResponderEliminar

Tu comentario es importante y nos motiva a seguir escribiendo...

Entradas más recientes

© 2014 Mi diario Python. Designed by Bloggertheme9 | Distributed By Gooyaabi Templates
Powered by Blogger.