Google+ Seguidores

lunes, 14 de abril de 2014

Ejercicios en python (parte 4)

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

32 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
  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
  12. Buenas noches,

    Envio mi codigo del primer ejercicio:

    import random

    def aplicar_descuento(total_compras):
    digitos = (1,2,3,4,5)
    bola = random.choice(digitos)
    if bola == 1:
    print("Aleatoriamente obtuvo la bola Blanca")
    print("Lo siento....! no tiene descuento en su compra")
    elif bola == 2:
    desc = float(total_compras) * 0.10
    nuevo_total = float(total_compras) - desc
    print("Aleatoriamente usted obtuvo la Bola Roja ")
    print("Felicidades!!, se ha ganado un 10% de descuento!")
    print("Su nuevo total a pagar es", nuevo_total)
    elif bola == 3:
    desc = float(total_compras) * 0.20
    nuevo_total = float(total_compras) - desc
    print("Aleatoriamente usted obtuvo la bola Azul ")
    print("Felicidades!!, se ha ganado un 20% de descuento!")
    print("Su nuevo total a pagar es", nuevo_total)
    elif bola == 4:
    desc = float(total_compras) * 0.25
    nuevo_total = float(total_compras) - desc
    print("Aleatoriamente usted obtuvo la bola Verde ")
    print("Felicidades!!, se ha ganado un 25% de descuento!")
    print("Su nuevo total a pagar es", nuevo_total)
    else:
    desc = float(total_compras) * 0.50
    nuevo_total = float(total_compras) - desc
    print("Aleatoriamente usted obtuvo la bola Amarilla ")
    print("Felicidades!!, se ha ganado un 50% de descuento!")
    print("Su nuevo total a pagar es", nuevo_total)


    def main():
    while True:
    total_compras = input("introduzca el total de las compras(Presione * si desea salir): ")
    if total_compras == '*':
    print("Adios")
    break
    elif int(total_compras) > 100:
    print("\t\tSu compra es Mayor a 100 aplica para nuestros sorteo")
    print("\t\t\t\tBola Blanca ---> No tiene Descuento")
    print("\t\t\t\tBola Roja ---> 10% de Descuento")
    print("\t\t\t\tBola Azul ---> 20% de Descuento")
    print("\t\t\t\tBola Verde ---> 25% de Descuento")
    print("\t\t\t\tBola Amarilla ---> 50% de Descuento")
    aplicar_descuento(total_compras)
    else:
    print("Lo sentimos sus compras son menores a 100.....No aplica para nuestro sorteo")

    main()






    ResponderEliminar
  13. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  14. Mi propuesta para el ejercicio 1:

    import random

    def bolitas(valor1):
    cantidad=valor1
    salida=0
    pregunta=""

    while salida==0:

    if cantidad<100:

    print("Ud no tiene derecho al sorteo, tiene que gastar más de 100€")

    else:

    premios={"BLANCA":0, "VERDE":10, "NARANJA":20, "ROJA":25, "NEGRA":50}
    bola=random.choice(["BLANCA", "VERDE", "NARANJA", "ROJA", "NEGRA"])
    premio=premios[bola]
    precio_total=cantidad-(cantidad*(premio/100))

    print("")
    print("")
    print("")
    print("SU GASTO IGUALA O SUPERA LOS 100, TIENE DERECHO A LA PROMOCIÓN")

    print(" COLOR DESCUENTO")
    print(" -------------------------------------------")
    print("")
    print(" BOLA BLANCA NO TIENE")
    print(" BOLA VERDE 10%")
    print(" BOLA NARANJA 20%")
    print(" BOLA ROJA 25%")
    print(" BOLA NEGRA 50%")
    print("")
    print("ALEATORIAMENTE UD OBTUVO LA BOLA", bola)
    print("")
    print("FELICIDADES, OBTUVO UN ", premio, "POR CIENTO DE DESCUENTO")
    print("")
    print("SU NUEVO TOTAL A PAGAR ES:",precio_total)

    print("ESTE CLIENTE HA TERMINADO, ¿DESEA ATENDER A OTRO CLIENTE? S/N")
    pregunta=input().upper()

    if pregunta=="N" or pregunta=="NO":
    salida=1

    bolitas(int(input("INTRODUZCA LA CANTIDAD QUE HA COMPRADO EL CLIENTE: ")))

    ResponderEliminar
  15. El resultado del 2 sería...

    import os
    productos={
    1:"CAMISA",
    2:"CINTURÓN",
    3:"ZAPATOS",
    4:"PANTALÓN",
    5:"CALCETINES",
    6:"FALDA",
    7:"GORRA",
    8:"SUETER",
    9:"CORBATA",
    10:"CHAQUETA"}

    precio={
    "CAMISA":30,
    "CINTURÓN":20,
    "ZAPATOS":25,
    "PANTALÓN":30,
    "CALCETINES":10,
    "FALDA":40,
    "GORRA":20,
    "SUETER":35,
    "CORBATA":25,
    "CHAQUETA":50}

    def compritas():
    codigo=1
    cuenta=0
    pregunta=0

    while True:
    while True:
    print ("ELIJA EL PRODUCTO DESEADO:\n\n")
    print(("PRODUCTO CÓDIGO").expandtabs(40))
    print(("----------------------------------------------\n"))

    for i in range(1,len(productos)+1):
    print(productos[i],(" ").expandtabs((40-len(productos[i]))), i)

    eleccion=int(input("\nINTRODUZCA EL CÓDIGO DEL PRODUCTO: "))

    if eleccion>len(productos):
    print("----------------------------------\nLO LAMENTAMOS, EL ARTÍCULO NO EXISTE...\n----------------------------------")
    else:
    break

    print("\nEL PRECIO DEL ARTÍCULO ES: ", precio[productos[eleccion]], "EUROS")

    cantidad=int(input("\nINTRODUZCA CUANTOS ARTÍCULOS NECESITA: "))

    print("EL TOTAL A PAGAR ES ", precio[productos[eleccion]]*cantidad, "euros.")
    cuenta+=precio[productos[eleccion]]*cantidad

    print("\nSU CUENTA ASCIENDE A", cuenta, "EUROS")
    pregunta=input("SI DESEA DEJAR DE COMPRAR PULSE 1, DE LO CONTRARIO PULSE OTRO NÚMERO ")

    if pregunta=="1":
    break
    os.system('cls')



    compritas()

    ResponderEliminar
  16. Y con esto concluyo esta batería de ejercicios, como siempre muchísimas gracias por ellos.

    def videoclub():
    categorias={1:"FAVORITOS",2:"NUEVOS",3:"ESTRENOS", 4:"SUPER ESTRENOS"}
    precios={1:2.50, 2:3.00, 3:3.50, 4:4.00}
    recargo={1:0.50, 2:0.75, 3:1.00, 4:1.50}

    while True:
    print(("CATEGORIA PRECIO CÓDIGO RECARGO/DIA DE RETRASO").expandtabs(32))
    print("-----------------------------------------------------------------------------------------------------------------------")
    for i in range(1,len(categorias)+1):
    print(categorias[i],
    (" ").expandtabs(30-len(categorias[i])),
    "€",precios[i]," ".expandtabs(28), i, " ".expandtabs(36), "€", recargo[i])

    while True:
    codigo=int(input("\n\nINTRODUZCA EL CÓDIGO DE LA CATEGORÍA DE LA PELÍCULA: "))
    if codigo>0 and codigo<len(categorias)+1:
    break


    dias=int(input("INTRODUZCA EL NÚMERO DE DÍAS DE RETRASO EN LA DEVOLUCIÓN: "))


    print("EL TOTAL A PAGAR ES: ", precios[codigo]+(recargo[codigo]*dias), "DOLARES.")

    pregunta=input("SI DESEA SALIR PULSE 1 SI DESEA CONTINUAR PULSE CUALQUIER OTRA LETRA ")

    if pregunta=="1":
    break


    videoclub()

    ResponderEliminar
  17. pues a mi me parece que asi queda mas facil y presentable que en la solucion.
    import random
    tortilla='1'
    while tortilla=='1':
    pago=int(input('INTRODUZCA LA CANTIDAD TOTAL DE LA COMPRA '))
    if pago>=100.00:
    print('SU GASTO IGUALA O SUPERA LOS 100$, POR LO TANTO PARTICIPA EN LA PROMOCION\n\n COLOR DESCUENTO\n\n BLANCO NADA\n AMARILLO 10%\n VERDE 20%\n ROJO 25%\n AZUL 50%')
    color=random.randint(1,5)
    if color==1:
    color=['AMARILLO',90]
    elif color==2:
    color=['BLANCO',100]
    elif color==3:
    color=['ROJO',75]
    elif color==4:
    color=['VERDE',80]
    else:
    color=['AZUL',50]
    if color[0] !='BLANCO':
    print('ALEATORIAMENTE USTED OBTUVO EL',color[0],'\nFELICIDADES, HA GANADO UN',100-color[1],'POR CIENTO DE DESCUENTO\nSU NUEVO TOTAL A PAGAR ES: $',pago*color[1]/100)
    else:
    print('ALEATORIAMENTE USTED OBTUVO EL',color[0],'\nQUE MALA SUERTE! NO OBTUVO NI UN POR CIENTO DE DESCUENTO\nSU TOTAL A PAGAR ES: $',pago)
    else:
    print('SU COMPRA TIENE QUE SUPERAR LOS 100 DOLLARES')
    tortilla=input('SI DESEA CONTINUAR PRESIONE 1, DE LO CONTRARIO PRESIONE CUALQUIER OTRA COSA')

    ResponderEliminar
  18. Buenas noches.¿Alguna solución para este ejercicio?

    Dada una lista de números enteros, escribir una función que:
    a) Devuelva una lista con todos los que sean primos.
    b) Devuelva la sumatoria y el promedio de los valores.
    c) Devuelva una lista con el factorial de cada uno de esos números.

    Gracias.

    ResponderEliminar
  19. SOLUCIÓN CORRESPONDIENTE AL EJERCICIO 02 :

    class venta():
    print("BIENVENIDO A SU TIENDA PREFERIDA")
    print("")
    print("###*LISTA DE PRODUCTOS*####")
    print("")
    total=0
    productos=[[1,'Lapicero',1],[2,'Cuaderno',5],[3,'Zapato',40],[4,'Camisa',25],[5,'Pijama',97],[6,'Medias',5],[7,'Brazier',40],[8,'Calzon',25]]

    def listar_productos(self):
    print("CODIGO NOMBRE PRECIO")
    for n in self.productos:
    print(n)
    print("")
    cliente = input("INTRODUZCA SU NOMBRE : ")
    def seleccionar_producto(self):
    global codigo
    global precio
    global nombre
    global unidad
    global subtotal

    codigo = int(input("INTRODUZCA EL CODIGO DEL PRODUCTO : "))
    precio = self.productos[codigo-1][2]
    nombre = self.productos[codigo-1][1]
    unidad = int(input("INTRODUZCA LA CANTIDAD : "))
    subtotal = unidad*precio
    self.total+=subtotal
    producto = [codigo,nombre,precio,unidad,subtotal]
    producto=str(producto)

    file = open("libros.txt","a")
    file.write(producto+"\n")
    file.close()

    print("")
    print("CODIGO NOMBRE PRE_UNI UNIDAD SUBTOTAL")
    print("")
    print("{} {} {} {} {}".format(codigo,nombre,precio,unidad,subtotal))
    print("")
    print("DESEA AGREGAR MAS PRODUCTOS : ")
    print("1:SI")
    print("2:NO ")
    opcion=int(input(" : "))
    if opcion==1:
    self.seleccionar_producto()
    elif opcion==2:
    file = open("libros.txt", "r")
    productos=file.read()
    # print(productos)
    file.close()

    print("")
    print("########*FACTURA ELECTRONICA*###########")
    print("")
    print("CLIENTE : {}".format(self.cliente))
    print("")
    print("########*PRODUCTOS COMPRADOS*###########")
    print("")
    print("CODIGO/NOMBRE/PRECIO/CANTIDAD/SUBTOTAL")
    print("")
    print(productos)
    print("")
    print("TOTAL A PAGAR ES {} ".format(self.total))

    def guardar(self):
    producto = [codigo,nombre,precio,unidad,subtotal]
    producto=str(producto)

    file = open("libros.txt","a")
    file.write(producto+"\n")
    file.close()


    v_f=venta()
    v_f.listar_productos()
    v_f.seleccionar_producto()


    Espero los feedbacks muchachos-!!

    ResponderEliminar
  20. Mi solución al problema 1 (me aseguro también que solo introduzcan un numero)

    import random

    total_compras = 0
    while True:
    try:
    total_compras = int(input('💵 Introduce el total de la cantidad total de compras: $ '))
    break
    except ValueError:
    print('❌ Debes introducir un numero')

    if (total_compras < 100):
    print('❌ No aplica promoción')
    else:
    num_aleatorio = random.randint(0, 4)
    bolas = ['Blanca', 'Azul', 'Verde', 'Negra', 'Roja']
    recompensa = ['No tiene', '.10', '.20', '.25', '.50']
    print('Tu gasto iguala o supera los $100 por lo tanto participa en la promoción')
    print('COLOR'.rjust(30), end='')
    print('DESCUENTO'.rjust(30))
    cont = 0
    for bola in bolas:
    print(f'Bola {bola}'.rjust(30), end='')
    valDesc = ''
    if bola == 'Blanca':
    valDesc = 'No tiene'
    else:
    valDesc = f"% {recompensa[cont].replace('.', '')}"
    print(valDesc.rjust(30))
    cont += 1
    # imprimir tabla de descuentos
    print(f'🔮 Te has sacado la bola: {bolas[num_aleatorio]}')
    if bolas[num_aleatorio] == 'Blanca':
    print('❌ No aplica promoción')
    else:
    descuento = (float(recompensa[num_aleatorio]) * total_compras)
    total_conDescuento = total_compras - descuento
    print(f'💲 Descuento a aplicar: ${descuento}')
    print(f'💲 Precio final: ${total_conDescuento}')

    ResponderEliminar
  21. Mi solución al ejercicio 2:

    productos = {
    1: ["camisa", "$300"],
    2: ["cinturón", "$120"],
    3: ["zapatos", "$800"],
    4: ["pantalón", "$500"],
    5: ["calcetines", "$80"],
    6: ["faldas", "$90"],
    7: ["gorras", "$120"],
    8: ["sueter", "$600"],
    9: ["corbata", "$150"],
    10: ["chaqueta", "$600"]
    }

    def obtener_precio(codigo: int):
    return int(productos.get(codigo, '$0')[1].replace('$', ''))

    def obtener_producto(codigo: int):
    return productos.get(codigo, ['-', '$0'])

    def listar_productos():
    print('🧦👖 Tienda de Ropa "El caballo elegante" 👔👕')
    print('Elije el producto deseado')
    print('Producto'.rjust(25), end='')
    print('Código'.rjust(15))
    for producto in productos:
    id_producto = producto
    producto = obtener_producto(producto)
    nombre = producto[0].capitalize()
    # precio = producto[1]
    print(nombre.ljust(25, '.').rjust(40), end='')
    print(str(id_producto))
    while True:
    while True:
    try:
    listar_productos()
    codigo = int(input('Introduce el código del producto: '))
    precio = obtener_precio(codigo)
    print(f'💲 El precio es de: ${precio}')
    cantidad = int(input('Introduce el numero de unidades: '))
    total = cantidad * precio
    print(f'💲 El total a pagar es de: ${total}')
    break
    except ValueError:
    print('Debes introducir un numero valido')
    desicion = input('Si deseas salir presiona 1, de lo contrario presiona otro num: ')
    if desicion == '1':
    print('👋 ¡Adiós!')
    break

    ResponderEliminar
  22. #Parte-1 del Ejercicio2.
    def menuProductos(articulos):
    ----system('clear')
    ----if articulos == "Tienda":
    --------lista = arTienda
    --------titulo = "ELIJA EL PRODUCTO DESEADO:"
    --------lineas = ["METER UN NUEVO CODIGO-N", "TERMINAR COMPRA-T"]
    ----else:
    --------lista = arNuevos
    --------titulo = "ELIJA EL PRODUCTO A AÑADIR:"
    --------lineas = ["SALIR SIN AÑADIR PRODUCTO-S"]
    ----print("\n" + " "*20 + titulo + "\n")
    ----print(" "*20 + "PRODUCTO" + " "*31 + "CODIGO")
    ----for l in range(len(lista)):
    --------print(" "*20 + (lista[l][0] + "-"*40)[:40] + " " + str(lista[l][1]))
    ----print()
    ----for x in range(len(lineas)):
    --------print(" "*20 + (lineas[x][:-2] + "-"*40)[:40] + " " + lineas[x][-1])
    ----print()

    def filtroEntradasCodigo(articulos, codigo):
    ----if articulos == "Tienda":
    --------if not codigo.isdecimal():
    ------------if codigo.upper() != "N" and codigo.upper() != "T":
    ----------------print("\n-----> Codigo NO Permitido. Solo se Permiten Números. Excepto: 'N' y 'T'.")
    ----------------input("Pulsa Enter para continuar...")
    ----------------return False
    --------else:
    ------------if int(codigo) < 1 or int(codigo) > len(arTienda):
    ----------------print("\n-----> Codigo NO Permitido. Esta fuera del Rango de Codigos; de 1 a", len(arTienda))
    ----------------input("Pulsa Enter para continuar...")
    ----------------return False
    --------return True
    ----elif articulos == "Nuevos":
    --------if not codigo.isdecimal():
    ------------if codigo.upper() != "S":
    ----------------print("\n-----> Codigo NO Permitido. Solo se Permiten Números. Excepto: 'S'.")
    ----------------input("Pulsa Enter para continuar...")
    ----------------return False
    --------else:
    ------------if int(codigo) < 1 or int(codigo) > len(arNuevos):
    ----------------print("\n-----> Codigo NO Permitido. Esta fuera del Rango de Codigos; de 1 a", len(arNuevos))
    ----------------input("Pulsa Enter para continuar...")
    ----------------return False
    --------return True
    ----else:
    --------if not codigo.isdecimal():
    ------------print("\n-----> En Unidades del Producto, Solo se Permiten Números.")
    ------------input("Pulsa Enter para continuar...")
    ------------return False
    --------else:
    ------------if int(codigo) < 1 or int(codigo) > 15:
    ----------------print("\n-----> Unidades del Producto esta fuera del Rango Permitido; de 1 a 15.")
    ----------------input("Pulsa Enter para continuar...")
    ----------------return False
    --------return True

    ResponderEliminar
  23. #Parte-2 del Ejercicio2.
    from os import system
    arTienda = [["CAMISA",1,22],["CINTURON",2,10],["ZAPATOS",3,14],["PANTALON",4,28]]
    arNuevos = [["CALCETINES",1,11],["FALDAS",2,27],["GORRAS",3,12],["SUETER",4,26],["CORBATA",5,13],["CHAQUETA",6,32]]
    while True:
    ----menuProductos("Tienda")
    ----codigo = input(" "*20 + "INTRODUZCA CODIGO: ")
    ----if not filtroEntradasCodigo("Tienda", codigo): continue
    ----else: break
    while True:
    ----if codigo.upper() == "N":
    --------menuProductos("Nuevos")
    --------codigo = input(" "*20 + "INTRODUZCA CODIGO: ")
    --------if not filtroEntradasCodigo("Nuevos", codigo):
    ------------codigo = "N"
    ------------continue
    --------if codigo.upper() != "S":
    ------------codigo = int(codigo) - 1
    ------------arTienda.append([arNuevos[codigo][0],arNuevos[codigo][1],arNuevos[codigo][2]])
    ------------arTienda[-1][1] = arTienda[-2][1] + 1
    ------------arNuevos.pop(codigo)
    ------------for x in range(codigo, len(arNuevos)):
    ----------------arNuevos[x][1] = x + 1
    --------while True:
    ------------menuProductos("Tienda")
    ------------codigo = input(" "*20 + "INTRODUZCA CODIGO: ")
    ------------if not filtroEntradasCodigo("Tienda", codigo): continue
    ------------else: break
    --------continue
    ----elif codigo.upper() == "T":
    --------print("\nPrograma Terminado.")
    --------break
    ----else:
    --------codigo = int(codigo) - 1
    --------while True:
    ------------print("\n" + " "*20 + "EL PRECIO ES: $" + str(arTienda[codigo][2]))
    ------------unidades = input(" "*20 + "INTRODUZCA NUMERO DE UNIDADES. (Entre 1 y 15): ")
    ------------if not filtroEntradasCodigo("Unidades", unidades):
    ----------------menuProductos("Tienda")
    ----------------print(" "*20 + "INTRODUZCA CODIGO: " + str(codigo+1))
    ----------------continue
    ------------else: break
    --------print("\n" + " "*20 + "EL TOTAL A PAGAR DEL PRODUCTO ES: $" + str(arTienda[codigo][2]*int(unidades)))
    --------if input("\n------> Deseas Elegir más Productos? (Enter=Si OtrasTeclas=No): ") == "":
    ------------while True:
    ----------------menuProductos("Tienda")
    ----------------codigo = input(" "*20 + "INTRODUZCA CODIGO: ")
    ----------------if not filtroEntradasCodigo("Tienda", codigo): continue
    ----------------else: break
    ------------continue
    --------break

    ResponderEliminar
  24. Hola Diego, me presento, soy un jubilado aficionado a la programación, con un nivel, creo yo, medio bajo.
    Darte mis felicitaciones por el blog, es fantástico y ademas con un montón de ejercicios.
    Te voy a mandar mi solución al Ejercicio-2 que me ha parecido curioso y me ha picado la curiosidad meterle mano.
    Lo he tenido que mandar en dos parte, se me ha alargado un poco,, es que he puesto validación de entradas y también poder
    añadir más productos nuevos.

    ResponderEliminar

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

Powered by Blogger .