[ Foro de Python ]

Ayuda conEjercicio Python

30-Aug-2022 22:39
Invitado (Camilo)
1 Respuestas

Hola gente, soy nuevo y quería saber si me pueden ayudar con este ejercicio, no se como continuarlo o si tiene algún error. Este es el enunciado:

Para facilitar el relevamiento de datos de la ropa de trabajo de una empresa, se le solicita un programa que permita cargar para cada empleado los siguientes datos: Propiedad/Tipo de datos Legajo /int Apellido /string Nombre /string Camisa (talle) /int Pantalón (talle) /int Zapatos de Seguridad /bool El programa a construir deberá permitir: a) Agregar una nueva persona a la lista. b) Quitar una persona. c) Ordenar la lista por legajo d) Ordenar la lista por apellido y nombre.

Ahora les voy a pasar lo que hice hasta ahora

def agregar_menu(lista):
   lega = input("Ingrese el Lejajo del Empleado: ")
   while (lega!=""):
       ape = input("Apellido: ")
       nom = input("Nombre: ")
       tc = int(input("Camisa(talle): "))
       tp = int(input("Pantalon(talle): "))
       zap = (input("Posee Zapatos de Seguridad?(si o no): "))
       while (zap!=""):
           if (zap=="no"):
               zap=False
               break
           elif(zap=="si"):
               zap=True
               break
           else:
               print("Valor Incorrecto")
           zap = (input("Ingresa si o no: "))
       agregar(lista, lega, ape, nom, tc, tp, zap)
       res=input("Quieres Agregar otro empleado? (si o no)")
       while (res!=""):
           if (res=="no"):
               break
           elif(res=="si"):
               break
           else:
               print("Valor Incorrecto")
           res=input("Quieres Agregar otro empleado? (si o no)")
       if (res=="no"):
           break
       lega = input("Ingrese el Lejajo del Empleado: ")


def agregar(lista, lega, ape, nom, tc, tp, zap):
   nuevo = {"Legajo" : lega,"Apellido" : ape, "Nombre" : nom, "Camisa" : tc, "Pantalon" : tp, "Zapatos" : zap}
   lista.append(nuevo)
empleados = []
agregar_menu(empleados)
for n in empleados:
   print("Legajo:",n["Legajo"]," Apellido:",n["Apellido"]," Nombre:",n["Nombre"]," Camisa:",n["Camisa"]," Pantalon:",n["Pantalon"]," Zapatos:", n["Zapatos"])

Si alguien sabe como continuarlo o resolverlo, se lo agradeceria, Muchas gracias!!


06-Sep-2022 21:14
Invitado (paco)

hola camilo

en tu código hay varias cosas que mejorar

por ej de lar función agrega llamas a agregar_menu y de agregar_menu a agregar es decir haces un bucle infinito entre las funciones

lo principal que veo es que deberias hacer fuciones más pequeñas con cometidos simples y claros por ej:

  - una función para el menú principal que seleccione la opción de usuario
  - una función para cada opción del usuario
  - si tienes que hacer comprobaciones de datos puedes hacerlo con funciones
  - si puedes dividir el código de una función en partes con funciones separadas hazlo

te quedará el código mucho mas limpio y claro, y podrás comprobar facilmente que parte te falla

te paso una posible solución:
https://www.online-ide.com/PhY3dDi9vw

suerte ;-)






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)