Funciones en Python (2024)

13. Ejercicio tipo final

13.10. Ejercicio Funciones Diccionarios con Listas

Consigna 16) de Ejercicios propuestos

Se tiene que almacenar el Stock de repuestos de una empresa, los valores a almacenar serán: nombre del repuesto y valores máximo, mínimo y actual del Stock.

El valor máximo y mínimo son parámetros que permiten determinar cuándo debo comprar ese repuesto (si llegué o estoy por debajo del mínimo) y el máximo para saber que tengo stock suficiente.

Definir un diccionario con 3 nombres de claves, para todas las claves (repuestos) con los valores de cada ítem en cero (máx., min, stock)

Luego llamar a una función que permita realizar una carga inicial.

A continuación se presenta un menú permite:

1) Seleccionar y modificar el stock actual (no puede ser negativo)

2) Dar de baja un ítem

3) Dar de alta un ítem (no puede ser negativos los valores de stock)

4) Mostrar quien tiene stock crítico (por debajo del mínimo)

5) Listar los ítems

S o s) Salir.

Para cada ítem del menú llamar a una función que realice lo solicitado.


RESOLUCION


def cargaini():
    print("\n Cargando el diccionario...\n")
    for i in st:
        l=[]
        
        max1=int(input("Ingrese stock maximo"))
        while max1<0:
            max1=int(input("Error. ReIngrese stock maximo"))
        min1=int(input("ingrese stock minimo"))
        while min1<0:
            min1=int(input("Error. ReIngrese stock minimo"))
        act=int(input("ingrese stock actual"))
        while act<0:
            act=int(input("Error. ReIngrese stock actual"))
        l.append(max1)
        l.append(min1)
        l.append(act)
        st[i]=l

def modificar(clave):
    act=int(input("Ingrese nuevo stock actual"))
    while act<0:
            act=int(input("Error. ReIngrese stock actual"))
    st[clave][2]=act

def baja():
    cl=input("ingrese el item a da de baja :")
    if cl in st:
        st.pop(cl)
        return True
    else:
        return False
    
def alta(clave):
    l=[]
    max1=int(input("Ingrese stock maximo"))
    while max1<0:
            max1=int(input("Error. ReIngrese stock maximo"))
    min1=int(input("ingrese stock minimo"))
    while min1<0:
            min1=int(input("Error. ReIngrese stock minimo"))
    act=int(input("ingrese stock actual"))
    while act<0:
            act=int(input("Error. ReIngrese stock actual"))
    l.append(max1)
    l.append(min1)
    l.append(act)
    st[clave]=l

def control():
    band=False
    for i in st:
        if st[i][2]<st[i][1]:
            print("item con stock insuficiente: ",i)
            band=True
    if not band:
        print("no hubo items a mostrar")

def menu():
   print("\n1. Modificar st actual \n2. Baja \n3. Alta \n4. Control stock actual \n5. Mostrar dicc \ns. Salir \n")
   op=input("ingrese opcion: ")
   while op!='s' and op!='S':
    if op=='1':
        cl=input("ingrese el item a modificar :")
        if cl in st:
            modificar(cl)
        else:
            print("no existe ese item")
    elif op=='2':
            if baja():
                print("elemento borrado con exito")
            else:
                print("No se pudo borrar el item")
    elif op=='3':
        cl=input("ingrese el item a da de alta :")
        if cl in st:
            print("YA existe ese item")
        else:
            alta(cl)
    elif op=='4':
        control()
    elif op=='5':
        print("\nDiccionario cargado: ")
        for i in st:
            print(i, ": ", st[i])
    elif op=='S' or op=='s':
        print("chau")
    else:
        print("error opcion incorrecta!")
    
    print("\n1. Modificar st actual \n2. Baja \n3. Alta \n4. Control stock actual \n5. Mostrar dicc \ns. Salir \n")
    op=input("Ingrese opcion: ")
    
st={'rep1':[0,0,0],'rep2':[0,0,0],'rep3':[0,0,0]}

cargaini()

menu()