Created
April 2, 2022 01:04
-
-
Save ChekeGT/c5ef9b27bac9215291b04ff7309938c5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
Se trata crear una lista de lo que compraste en las tiendas de sneackers y dividirlos en las secciones: | |
1.-Solicitar a traves de el teclado utilizando la funcion input las siguientes categorias para la lista: | |
Tenis: Jordan 1, Jordan 4, yeezys, etc | |
Hoodies: Supreme, Gap, Champion, etc | |
Gorras: New Era, Gap, etc | |
2.-Debes utilizar el metodo append para agregar elementos de forma manual a la lista, agregaras 1 seccion nueva la que decidas con almenos 3 elementos | |
3.-En comentarios extendidos describe que hace tu lista, sus caracteristicas, el tipo objetos que contiene (tipos de datos) | |
4.-Deberas mostrar el contenido de esta lista utilizando el FOR para imprimir elemento por elemento, al final deberas mostrar un ejemplo de uso en tu lista de los metodos extend, reverse, remove | |
5.-Debes agregarle un precio a cada producto almenos mediante el uso de variables | |
6.-Recuerda que debes utilozar los metodos basicos de print, format minimo con un ejemplo para mostrar | |
dos operaciones basicas con el precio de 3 productos. | |
""" | |
from os import system | |
from re import T | |
from time import sleep | |
class Item: | |
def __init__(self, price, name, type): | |
self.price = price | |
self.name = name | |
self.type = type | |
def __str__(self) -> str: | |
return self.name | |
def show_stock_options(stock, product_name): | |
"""Metodo para generar una interfaz para seleccionar los items con una lista(base de datos) dada""" | |
input_string = f"Selecciona los productos de tipo {product_name} que compraste:\n" | |
for item in stock: | |
option_number = stock.index(item) | |
input_string += (f"\t{option_number}) {item}\n") | |
return input_string | |
def remove_items(buy_list): | |
menu = "Selecciona el producto que quieres remover:\n 0) Dejar de remover\n" | |
for item in buy_list: | |
menu += f"{buy_list.index(item) + 1 }){item.name}\n" | |
option = int(input(menu)) | |
if option == 0: | |
return buy_list | |
else: | |
removed_item = buy_list[option - 1] | |
buy_list.remove(removed_item) | |
print(f"Se ha removido {removed_item.name} con exito.") | |
return buy_list | |
tenis_stock = [Item(1500, "Jordan I","Tenis"), Item(1500, "Jordan IV","Tenis"), Item(1500, "Yeezies","Tenis")] | |
hoodie_stock = [Item(1500, "Supreme","Hoodie"), Item(1500, "GAP","Hoodie"), Item(1500, "Champion","Hoodie")] | |
cap_stock = [Item(1500, "New Era","Gorra"), Item(1500, "GAP","Gorra"), Item(1500, "Champion","Gorra")] | |
sock_stock = [Item(50, "Cuidado con el Perro", "Calceta"),Item(200, "Nike", "Calceta"), Item(150, "Adidas", "Calceta")] | |
stock = [] | |
stock.extend(tenis_stock) | |
stock.extend(hoodie_stock) | |
stock.extend(cap_stock) | |
stock.extend(sock_stock) | |
"""La lista funciona como un carrito en el cual los objetos de tipo Item, clase que generé más arriba son sus elementos, | |
esto porque de tal manera es más facil mantener sus atributos a lo largo del codigo, es decir, | |
poder acceder al tipo de producto y al precio de manera más facil. | |
La lista sirve para guardar los objetos que el usuario le vaya agregando.""" | |
buy_list = [] | |
def print_buy_list(): | |
for item in buy_list: | |
try: | |
print("Tipo de compra:{type}\n Nombre:{name}\n Precio:{price}\n".format(type=item.type, name= item.name, price=item.price)) | |
except AttributeError: | |
pass | |
except Exception as e: | |
print(e) | |
while True: | |
sleep(2) | |
system("cls") | |
option = input(""" Bienvenido al programa de la lista, selecciona lo que compraste en la tienda de sneakers: | |
1) Tenis | |
2) Hoodies | |
3) Gorras | |
4) Calcetas | |
5) Imprimir la lista de compras | |
6) Remover un elemento | |
7) Poner la lista en orden al reves | |
8) Imprimir toda la lista | |
9) Mostrar el inventario | |
10) Dar la cuenta(El precio) | |
11) Salir del programa | |
""") | |
system("cls") | |
if option == "1": | |
tenis_choice = tenis_stock[int(input(show_stock_options(tenis_stock, "Tenis")))] | |
buy_list.append(tenis_choice) | |
elif option == "2": | |
hoodie_choice = hoodie_stock[int(input(show_stock_options(hoodie_stock, "Hoodie")))] | |
buy_list.append(hoodie_choice) | |
elif option == "3": | |
cap_choice = cap_stock[int(input(show_stock_options(cap_stock, "Gorra")))] | |
buy_list.append(cap_choice) | |
elif option == "4": | |
sock_choice = sock_stock[int(input(show_stock_options(sock_stock, "Calcetas")))] | |
buy_list.append(sock_choice) | |
elif option == "5": | |
print_buy_list() | |
sleep(5) | |
elif option == "6": | |
buy_list = remove_items(buy_list) | |
elif option == "7": | |
buy_list.reverse() | |
elif option == "8": | |
if buy_list == []: | |
print("La lista está vacia") | |
else: | |
print([item.name for item in buy_list]) | |
elif option == "9": | |
for item in stock: | |
print("Tipo de articulo:{type}\n Nombre:{name}\n Precio:{price}\n".format(type=item.type, name= item.name, price=item.price)) | |
elif option == "10": | |
total = 0 | |
iva = 0 | |
for item in buy_list: | |
product_iva = item.price * 0.16 | |
print("Nombre del producto:{name}\t Precio:${price} \t IVA:{iva}\n".format(name=item.name, price=item.price, iva=product_iva)) | |
total += item.price | |
iva += product_iva | |
print(f"El total es: ${total} \n El iva es: ${iva}") | |
elif option == "11": | |
break | |
else: | |
print("Introduce una opcion adecuada") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment