Python - Actividad Python

 
Vista:
sin imagen de perfil

Actividad Python

Publicado por Esteban (4 intervenciones) el 30/08/2022 18:23:25
Hola gente, quería saber si me pueden ayudar a continuar con este ejercicio, 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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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"])

Me faltarian realizar estos puntos, pero no se como continuarlo:
b) Quitar una persona.
c) Ordenar la lista por legajo
d) Ordenar la lista por apellido y nombre.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Actividad Python

Publicado por tincopasan (1082 intervenciones) el 30/08/2022 20:59:29
¿y tiene que ser con listas? primero deberías crear un menú para elegir las opciones y por lo menos una función vacía para cada opción.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Actividad Python

Publicado por Javier (4 intervenciones) el 30/08/2022 21:11:25
Supongo que si tiene que ser con listas, porque el enunciado dice así:
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.

y lo del menu para funcion vacia no entendí lo que me escribiste, podrias ejemplificarlo en mi codigo? Asi podria comprenderlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Actividad Python

Publicado por tincopasan (1082 intervenciones) el 31/08/2022 06:12:33
te muestro un código, todo con listas, por el
1
"Supongo que si tiene que ser con listas, porque el enunciado dice así:"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#-*- coding: utf  -8 -*-
def agregar_empleado():
    while True:
        zapatos = False
        lega = int(input("Ingrese el Legajo del Empleado: "))
        ape = input("Apellido: ").capitalize()
        nom = input("Nombre: ").capitalize()
        tc = int(input("Camisa(talle): "))
        tp = int(input("Pantalon(talle): "))
        zap = input("Posee Zapatos de Seguridad?(si o no): ")
 
        while zap not in "si no":
            print("Valor Incorrecto")
            zap = (input("Ingresa si o no: "))
 
        if zap =="si" :
                zapatos=True
 
        agregar(lega, ape, nom, tc, tp, zapatos)
 
        res=input("Quieres Agregar otro empleado? (si o no)")
 
        while res not in "si no":
            if res=="si":
                break
            else:
                print("Valor Incorrecto")
                res=input("Quieres Agregar otro empleado? (si o no)")
 
        if res=="no":
                return
 
def agregar(lega, ape, nom, tc, tp, zap):
    return  empleados.append([lega,f"{ape} {nom}",tc,tp,zap])
 
 
def elimina_legajo():
    legajo=int(input("Ingrese el número de legajo a eliminar: "))
    posicion= None
    for x in empleados:
        if x[0]==legajo:
            posicion = empleados.index(x)
    if posicion != None:
        empleados.pop(posicion)
 
 
def ordena_legajo():
    if len(empleados) == 0:
        print("No hay empleados registrados\t")
        return
    empleados.sort(key=lambda x: x[0] )
    for uno in empleados:
        print(f"Legajo: {uno[0]} Apellido y nombre: {uno[1]} tc:{uno[2]}  tp:{uno[3]}  zapatos:{uno[4]}")
 
 
def ordena_apellido():
    if len(empleados) == 0:
        print("No hay empleados registrados\t")
        return
    empleados.sort(key=lambda x: x[1] )
    for uno in empleados:
        print(uno)
 
def menu():
    while True:
        print("""\tMenu Opciones
1) Agrega empleado
2) Quitar empleado
3) Mostrar empleados ordenados por legajo
4) Mostrar empleados ordenados por apellido
5) Salir """)
        opcion=input("Ingrese una opción: ")
        if opcion == "1":
            agregar_empleado()
        elif opcion =="2":
            elimina_legajo()
        elif opcion =="3":
            ordena_legajo()
        elif opcion =="4":
            ordena_apellido()
        elif opcion =="5":
            print("Programa terminado")
            return
        else: print("Opción incorrecta")
 
if __name__=="__main__":
    empleados = []
    menu()

le faltan muchas correcciones, mejoras y verificaciones, pero está funcional para que te sirva de guía.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar