Soluciones de ejercicios y proyecto – 100 días de Python #5

Soluciones de ejercicios y proyecto – 100 días de Python #5

Esta página contiene las soluciones para los ejercicios y el proyecto del quinto día del curso.

  1. Recuerda que para llegar al valor 14, el range() tiene que tener hasta el 15.
for i in range(7,15):
    print(f"El valor del bucle es: {i}.")
  1. En este caso, se puede poner de condición, menor o igual a 14.
i = 7

while i <= 14:
    print(f"El valor del bucle es: {i}.")
    i += 1
  1. Primero el bucle for y luego el while:
for i in range (0,-5001, -500):
    print(f"El valor del bucle es: {i}.")
i = 0

while i >= -5000:
    print(f"El valor del bucle es: {i}.")
    i -= 500
  1. Una vez aprendes bien a iterar listas con bucles, esto es de lo más sencillo de hacer:
for pais in paises:
    print(f"-> {pais} <-")

Recuerda que la variable "i" de los bucles, se suele poner por convención, no es obligatoria. Hay veces donde es más entendible poner, por ejemplo "pais", que es lo que se almacena en cada vuelta del bucle, un "país" de la lista de "países".

  1. En primer lugar, ordeno la lista de menor a mayor con sort(). Para que el 356 quede al final (es el mayor),

Con un bucle for, itero toda la lista.

Anido un if para indicar que si el valor es igual a 10, que lo omita (continue).

Si el valor es igual a 356, que rompa la ejecución del bucle (break) como se pide (también se podía hacer con un "continue" puesto que está al final de la lista y el bucle ya termina).

Si no es ninguno de estos dos valores, se imprimen con normalidad.

Tienes dos posibles soluciones, hacer if individuales o un if elif else:

lista_numeros = [10,45,356,10,10,10,46,67,45,10,10,43,10,65,10,10]

# Se ordena la lista de menor a mayor
lista_numeros.sort()

# Bucle para iterar la lista
for i in lista_numeros:
    if i == 10:
        continue # Se omiten los valores 10
    if i == 356:
        break # Se rompe la iteración en el momento que el valor de i es 356
        
    print(f"El valor del elemento es: {i}")
lista_numeros = [10,45,356,10,10,10,46,67,45,10,10,43,10,65,10,10]

# Se ordena la lista de menor a mayor
lista_numeros.sort()

# Bucle para iterar la lista
for i in lista_numeros:
    if i == 10:
        continue # Se omiten los valores 10
    elif i == 356:
        break # Se rompe la iteración en el momento que el valor de i es 356
    else:   
        print(f"El valor del elemento es: {i}")

Solución del proyecto de pedido en pizzería

Primero de todo, aquí tienes el código. Si lo has hecho diferente, lo importante, como siempre digo, es que cumpla con los requisitos solicitados que puedas lograr. Como siempre, puedes ver la explicación de este código con todo detalle en el vídeo correspondiente a este día del curso.

# Declaración de las variables del programa
dinero = float(input("Hola, indique el dinero que lleva.\n"))
DINERO_INICIAL = dinero
total = 0
pedido = []

margarita = 7.85
jamon_queso = 9.65
cuatro_quesos = 8.95

extra_queso = 1.25
champinones = 0.85
albahaca = 0.5

# Título del programa
print("-> Pizzería PF <-\n")

# Bucle infinito (True) para pizzas - Número de ejecuciones indeterminadas
while True:
	# Menú de pizzas
    print(f"1 - Margarita - {margarita}$")
    print(f"2 - Jamón y queso - {jamon_queso}$")
    print(f"3 - Cuatro quesos - {cuatro_quesos}$")
    
	# Almacena la elección del usuario
    eleccion = int(input("Hola, por favor, seleccione su pizza con un número de opción.\n"))

    # Se calcula el cambio y el total, se indica la pizza elegida, se añade a la lista
    match eleccion:
        case 1:
            print(f"Ha elegido la pizza margarita.\nTotal a pagar {margarita}$.")
            dinero -= margarita
            print(f"Le quedan {round(dinero,2)}$.")
            total += margarita
            pedido.append(f"Margarita - {margarita}$")
            break
        case 2:
            print(f"Ha elegido la pizza de jamón y queso.\nTotal a pagar {jamon_queso}$.")
            dinero -= jamon_queso
            print(f"Le quedan {round(dinero,2)}$.")
            total += jamon_queso
            pedido.append(f"Jamón y queso - {jamon_queso}$")
            break
        case 3:
            print(f"Ha elegido la pizza cuatro quesos.\nTotal a pagar {cuatro_quesos}$.")
            dinero -= cuatro_quesos
            print(f"Le quedan {round(dinero,2)}$.")
            total += cuatro_quesos
            pedido.append(f"Cuatro quesos - {cuatro_quesos}$")
            break
        case _:
            print(f"Opción incorrecta. Seleccione una opción del 1 al 3.")

# Bucle infinito (True) para ingredientes - Número de ejecuciones indeterminadas            
while True:
	# Menú de ingredientes
    print(f"1 - Extra de queso - {extra_queso}$")
    print(f"2 - Champiñones - {champinones}$")
    print(f"3 - Albahaca - {albahaca}$")
    print(f"4 - No añadir nada extra y pagar.")
    
    # Almacena la elección del usuario
    eleccion = int(input("Si desea algún ingrediente extra, selecciónelo.\n"))
    
    # Se calcula el cambio y el total, se indican los ingredientes elegidos, 
    # se añaden a la lista...
    match eleccion:
        case 1:
            print(f"Ha elegido extra de queso.\nExtra a pagar {extra_queso}$.")
            dinero -= extra_queso
            total += extra_queso
            print(f"Total a pagar: {total}$.")
            print(f"Le quedan {round(dinero,2)}$.")
            pedido.append(f"Extra de queso - {extra_queso}$")
        case 2:
            print(f"Ha elegido champiñones extra.\nExtra a pagar {champinones}$.")
            dinero -= champinones
            total += champinones
            print(f"Total a pagar: {total}$.")
            print(f"Le quedan {round(dinero,2)}$.")
            pedido.append(f"Champiñones - {champinones}$")
        case 3:
            print(f"Ha elegido añadir albahaca.\nExtra a pagar {albahaca}$.")
            dinero -= albahaca
            total += albahaca
            print(f"Total a pagar: {total}$.")
            print(f"Le quedan {round(dinero,2)}$.")
            pedido.append(f"Albahaca - {albahaca}$")
        case 4:
            print("De acuerdo, no se añade nada extra.")
            break
        case _:
            print(f"Opción incorrecta. Seleccione una opción del 1 al 4.")

# Un condicional para determinar si le llega el dinero al usuario con su pedido.
# Si le llega, se ejecuta el if y le saca el ticket con todo lo pedido.
if total <= DINERO_INICIAL:
    print("\n--- SU PEDIDO ---")

    print(f"El total  de su pedido es: {total}$.")
    print(f"Su cambio: {dinero}$.\n")

    for i in pedido:
        print(f"-{i}.")

    print("\n¡Buen provecho!")

# Si el dinero no le llega, le indica que no le llega y no imprime el ticket.    
else:
    print("No le llega el dinero para todo eso. Por favor, vuelva a empezar.")

8 comentarios en «0»

  1. Código para usar while con la lista de países:

    # Inicializamos el índice
    pais = 0
    # Bucle while para iterar a través de la lista de países
    while pais < len(paises):
    print(paises[pais])
    pais += 1

  2. Saludos el projecto de la pizza esta super interesante. Pero luego de haberlo creado y corrido te das cuenta que al principio no hay una instruccion para saber si tiene el dinero disponible para comprar la pizza. El programa te deja correrlo independientemente si no tienes la cantidad completa del dinero y cuando te tira el resultado te da un negativo. Yo estoy preparando el mismo projecto pero con otras instrucciones que antes de que comienze a ejecutar dinero -= pizza o total += pizza el sistema verifica de ante mano si tiene suficiente dinero para comprar. Lo hice con un if preguntadole al programa que si DINERO_INICIAL > pizza(peperoni,queso) entonces puede continuar ejecutando las instrucciones. Pero si el dinero inicial es menor que el costo de la pizza ahi inmediatamente termina el programa con un mensaje que le dice usted no tiene el dinero disponible para comprar la pizza> Si me lo permiten puedo publicar el codigo aqui para el beneficio de los compañeros

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

curso de Python Entrada anterior Ejercicios y proyecto con bucles for y while – 100 días de Python #5
curso de Python Entrada siguiente Las funciones – 100 días de Python #6