me tomé varios días para resolverlo sin apuro. Hice el catalogo y el carrito con diccionario y solo aplique excepciones en el momento de ingresar para pagar. Son super importantes estas practicas 😀
@italobecerra3031 Жыл бұрын
* Esta vez este ejercicio se me complico bastante , a pesar de que ya casi terminamos el curso , no puede resolverlo , por algunas cosas que se me olvidaron , o que no les di mucha practica como el while y expresiones de compresión , también como recorrer una variable , yo cuando lo estaba haciendo intentaba hacerlo lo mas optimo posible, pero me equivoque mucho y etc, ya me doy cuenta que debo practicar mas , cuando tenga que hacer un código extenso como del ejercicio, a veces me estreso y me enrredo , pero sigo intentado lo , llevo 3 meses aprendiendo * Gracias Ernesto por los ejercicios , seguiré mejorando para entrar a este mundo , que desde niño quise intentar hacerlo
@estebanwaka9 ай бұрын
La verdad me costo pero al final lo pude hacer con un poco de ayuda de Ernesto ya que lo tenia casi todo hecho pero no me daba no sabia que habia que hacer un diccionario y eso me puso a cabeciar hasta que me rendi pero cuando lo vi ahi si me dio
@juan_ortega236 ай бұрын
Aguante La Geekipedia De Ernesto, el mejor curso de Python en youtube. Saludos desde Argentina, gracias profe
@JosePacheco-fi8dd2 ай бұрын
excelente curso me sivió de mucho
@Destructor239811 ай бұрын
Este es mi mejor intento: print("Bienvenido a la Tienda Virtual ") diccionario = {"♣ Camiseta": 20, "♣ Jeans": 40, "♣ Zapatos": 60, "♣ Sombrero": 10, "♣ Xbox": 1000} carrito = {} repetidos = {} mandar = [] litsf = [] a_contar = 0 copia_exacta = {} copia_exacta2 = {}; copia_repetidos = {} while True: try: print("Menu: ");print("1. Agregar productos al carrito") print("2. Ver carrito") print("3. Realizar el pago y salir") opcion = int(input("Seleccione una opcion: ")) except TypeError: print(" Ingrese un numero entero. ") continue except Exception: print(" Ingrese un numero entero. ") continue if opcion == 1: print(" Productos disponibles:") for items, value in diccionario.items(): print(items,"$", value) producto1 = str(input("Ingrese el nombre del producto que desea agregar: ")).capitalize() for abrir in list(diccionario.keys()): if producto1 == abrir.lstrip("♣ ").capitalize(): litsf.append(producto1) for key, values in diccionario.items(): solo = key.lstrip("♣ ").capitalize() if producto1 == solo: if producto1 not in carrito: carrito.setdefault(producto1, values) copia_exacta2 = carrito.copy() copia_exacta = carrito.copy() print(f"Producto {producto1} agregado al carrito.") else: if producto1 in repetidos: repetidos[solo] += 1 mandar.append(repetidos[solo]) print(repetidos) else: repetidos[solo] = 2 # Inicializa el conteo en 2 mandar.append(repetidos[solo]) print(repetidos) print(f"Producto {solo} agregado al carrito. ({repetidos[solo]} veces)") print() else: if abrir == "♣ Xbox": break elif opcion == 2: copia_repetidos = repetidos.copy() try: contare = list(carrito.keys()) if producto1 in copia_exacta: for repetido, count in copia_repetidos.items(): if a_contar > 0: print(f" {count} x {repetido} (${copia_exacta2[repetido] * count}) ") else: print(f" {count} x {repetido} (${copia_exacta[repetido] * count}) ") copia_exacta2 = carrito.copy() a_contar += 1 if repetido in contare: del carrito[repetido] for key, value in carrito.items(): print(key, "$" , value," ") except NameError as b: print(" Carrito: ", b) except KeyError as x: print("Debes elegir todos tus productos antes de revisar el carrito.", x) continue elif opcion == 3: try: print(litsf) if len(litsf) > 1: print(copia_exacta) values2 = list(copia_exacta.values()) print(values2) listando = [] print(mandar) for count, element in zip(mandar, values2): listando.extend([element] * count) print(listando, "s") suma_total = sum(listando) print(f"Total a pagar: ${suma_total}") if pagan >= suma_total: cambio = suma_total - pagan break else: while pagan < suma_total: pagan = input("Monto invalido, ingrese un monto valido: ") else: value_f = list(copia_exacta.values()) print(f"Total a pagar: ${int(value_f[0])}") pagan = int(input("Ingrese el monto con el que pagara: ")) break except Exception as a: print("No tienes ningun articulo elegido.", a) else: print(" Debe ingresar un numero valido. ")
@Destructor239811 ай бұрын
Un me falta la parte de pagar, por que si pide el dinero pero no es el dinero correcto, aparte en la parte de elif2 pasa que si pones el carrito una vez, te sales y entras que te cobra solo lo anterior. Pero ya me revolvi mucho.
@claraikari7193 ай бұрын
Esta es mi resolución del ejercicio. Muchas gracias Ernesto. print("¡Bienvenide a la tienda virtual de Clara!") articulos = {"Camisa": 20, "Jeans": 40, "Zapatos": 60, "Sombrero": 10 } carrito = {} while True: try: print ("===Menú de opciones=== 1. Añadir artículo 2. Ver carrito 3. Realizar pago: 4. Salir de la tienda. ") elect = int(input("Introduce la opción deseada: ")) if elect == 1: while True: try: print("===Catálogo===") for articulo, precio in articulos.items(): print(f"{articulo}: {precio}$") print(" Para salir de este menú, escribe \"salir\" ") election = str(input("Escribe el artículo que deseas agregar al carrito: ")).title() if election == "Salir": break cantidad = int(input("Elije la cantidad deseada: ")) if cantidad == 0: print(" Por favor, ingresa una cantidad mayor a cero. ") continue if election in articulos: carrito[election] = (articulos[election], cantidad) print(f" ¡{election} x{cantidad} agregado exitosamente al carrito! ") else: print(" Introduce una de las opciones disponibles. ") except ValueError: print(" Error: Introduce el valor solicitado. ") elif elect == 2: print("Carrito: ") for articulo, (precio, cantidad) in carrito.items(): print(f"{articulo} {precio}$ x{cantidad}") print() elif elect == 3: total = 0 for articulo, (precio, cantidad) in carrito.items(): total += precio * cantidad while True: try: print(f"Total a pagar: {total}$") usermount = float(input("Seleccione la cantidad a pagar: ")) total -= usermount if total > 0: print(" Monto insuficiente. Por favor, ingrese un monto válido. ") break elif total == 0: print(" Muchas gracias por su compra. No se requiere cambio. ") break elif total < 0: print(f" Muchas gracias por su compra. Su cambio es de: {abs(round(total, 2))}$ ") break except ValueError: print(" Error: Introduce el valor solicitado. ") elif elect == 4: print(" ¡Muchas gracias por visitarnos! Que tenga un buen día. ") break except ValueError: print(" Error: Introduce una de las opciones disponibles ")
@fernandorp5518 Жыл бұрын
Muchas gracias por el curso. Este ejercicio me ha costado pero lo he conseguido. Eso si, casi todo a base de if, elif y else y muchas líneas de código. Me falta mucho por aprender
@agustinvrsa230711 ай бұрын
Casi lo hago todo bien a la primera. Solo me falto el Set(carrito) con el .count. Excelente curso y explicaciones.
@juan_ortega236 ай бұрын
gran video, aguante Ernesto, sos el mejor en Python
@Destructor239811 ай бұрын
Este me parece muy interesante, tiene muchas funciones, voy a entregarlo ojala me salga. Por que veo que no mucha gente comenta su propuesta.
@qobavision116110 ай бұрын
Despues de 2 a 3 horas asi me quedo : Tengo muchas cosas que mejorar , pero almenos lo que piden se hace : articulos = {"Polo": 10, "Camisa": 20, "Medias": 8, "Short": 5} carrito = {} while True: try: print(" =========== MENU ==========") print("1. Agregar productos al carrito") print("2. Ver Carrito") print("3. Realizar el pago y salir") opcion = int(input("Seleccione la Opción: ")) if opcion == 1: for key, value in articulos.items(): print(f"{key} => ${value}") producto = input("Agrega el producto que deseas: ").title() if producto.isdigit(): print("Error: Debes ingresar un nombre válido, no un número ni caracteres especiales.") continue if producto in articulos: if producto in carrito: carrito[producto] += 1 else: carrito[producto] = 1 print(f"{producto} añadido al carrito.") else: print("Error: Producto no encontrado en el inventario.") elif opcion == 2: print(" =========== CARRITO ==========") for item, unidades in carrito.items(): precio_por_unidad = articulos[item] print(f"{item}:{unidades} => ${precio_por_unidad} c/u") elif opcion == 3: print(" =========== RESUMEN DE COMPRA ==========") total_precio = 0 for item, unidades in carrito.items(): precio_unitario = articulos[item] total_precio += precio_unitario * unidades print(f"Total a pagar :${total_precio}") monto=int(input("Ingresa el monto con el que pagara :")) if total_precio < monto : total=monto-total_precio print(f"Su cambio es :{total} ¡GRACIAS POR SU COMPRA!") break elif total_precio > monto: print(f"!!!!!Cantidad insuficiente ,Vuelva a intentarlo!!!") else: print("¡GRACIAS POR SU COMPRA!") break else: print("Opción no válida. Por favor, seleccione una opción válida.") except ValueError: print("Error: Debes ingresar un número entero como opción.")
@Dark-pp7qr Жыл бұрын
Hola Profe, podrías actualizar el curso de android desde cero. estaba haciendo el actual pero el Android studio 2023 está muy actualizado y es demasiado difícil de hacer por todas las nuevas cosas y diseños que tienen
@LaCanarya Жыл бұрын
Buenas tardes, estoy iniciando tus tutos desde 0 y cada vez quedo más enamorada. ¿Te planteas hacer tutos de HTML, CSS o C#? ya que son mis objetivos?
@LaGeekipediaDeErnesto Жыл бұрын
¡Hola!, claro que si, esos cursos estarán en el canal. 💪🏻
@sttevess82857 ай бұрын
Lo hice totalmente diferente, sin crear un diccionario, igual funciona 😅
@alejandrotorresvalverde4096 Жыл бұрын
Muchas gracias
@leninabreu8541 Жыл бұрын
profe haras video con Tkinter y conection con bases de datos ?
@brayancasanova48934 ай бұрын
thanks
@Galactikus89 Жыл бұрын
Épico
@miguelparedes18229 ай бұрын
Mi solución; cabe destacar que le agregué la opción de eliminar productos del carrito e igual se que se puede mejorar: productos = {"CAMISETA":20,"JEANS":40 ,"ZAPATOS":60 ,"SOMBRERO":10} carrito = {} x = list(productos.keys()) carrito = dict.fromkeys(x,0) opcion_menu = 0 while opcion_menu != 4: try: print(" Menú: 1. Agregar productos al carrito. 2. Quitar productos del carrito 3. Ver carrito. 4. Realizar el pago y salir. ") opcion_menu = int (input("Su opción: ")) except ValueError as ve: print(" \tDebe ingresar un número entero.") except Exception as e: print(f" \tError: {e}") else: if opcion_menu == 1: print(" Entro a opcion 1") print(" Productos disponibles: ") for key, value in productos.items(): print(f"* {key} ${value}") try: user_producto = input("Ingrese el nombre del producto que desea agregar: ") user_producto = user_producto.upper() except ValueError as ve: print(" \tError. Ingrese un producto válido.") except Exception as e: print(f" \tError. {e}") else: if user_producto!="CAMISETA" and user_producto!="JEANS" and user_producto!="ZAPATOS" and user_producto!="SOMBRERO": print(" \tError! Ingrese un producto válido.") else: carrito[user_producto]+=1 print(f"Producto '{user_producto}' agregado al carrito con éxito.") error_producto=0 elif opcion_menu == 2: print(" Entro a opcion 2") print("Su carrito: ") for key, value in carrito.items(): if carrito[key]!=0: print(f" {value} {key} - ${productos[key]} c/u") try: user_producto = input ("Ingrese el nombre del producto que desea agregar:") user_producto = user_producto.upper() except ValueError as ve: print(" \tError. Ingrese un producto válido.") except Exception as e: print(f" \tError. {e}") else: if user_producto!="CAMISETA" and user_producto!="JEANS" and user_producto!="ZAPATOS" and user_producto!="SOMBRERO": print(" \tError! Ingrese un producto válido.") else: if carrito[user_producto]
@steevenocejo29458 ай бұрын
Me tomo varias horas pero lo pude hacer, un poco diferente y claro no es tan optimo como el ejercicio del Ing. Ernesto, pero voy mejorando print("===================================================") print(" Bienvenido a la tienda virtual ") print("===================================================") diccionario = {} while True: print("--------------------------------------------") print("Menú: 1. Agregar productos al carrito 2. Ver carrito 3. Realizar pago y salir") while True: try: print("------------------------------------------") opcion = int(input("Seleccione una opción: ")) if 1
@UiokHack-h7xАй бұрын
yo el principio lo ice como si nada pero la opcion 2 nunca la pude hacer no encontraba como contar los elementos y al final me toco ver la solución y me siento frustrado por lo facil que era
@santiagoclavijo18157 ай бұрын
tienes un pequeño error y es que nos permite pagar sin comprar nada, es decir, te saltas todas la opciones y le das en pagar y salir y te va a cobrar 0 incluso si pones un valor superior te va a dar el cambio
@juanpabloterrazas9843 ай бұрын
toda la razón le pude algo para corregirlo en mi proyecto