# Jean-loup Beaussart # 20/01/2015 # TP1: Gestion d'une promo d'étudiants - Structures itérables # http://www.fil.univ-lille1.fr/~L1S2API/CoursTP/tp1_structures_iterables.html from etudiants import * # Question 1 print("\n *** Question 1 ***") assert(type(l_etudiants) == type([])) for i in l_etudiants: assert(type(i) == type(tuple())) assert(len(i) == 5) for j in i: assert(type(i[0]) == type(i[1]) == type(i[2]) == type(i[3]) == type("")) assert(type(i[4]) == type(1)) print("La liste l_etudiant est correcte") # Question 2 print("\n *** Question 2 ***") print("Il y a ", len(l_etudiants), " étudiants dans la liste") # Question 3 print("\n *** Question 3 ***") print(l_etudiants[11501230%len(l_etudiants)]) # Question 4 print("\n *** Question 4 ***") formations = ["LICAM", "MASS", "PEIP", "SESI"] erreur = False for i in l_etudiants: if not i[3] in formations: print("L'étudiant ", i[1], " ", i[2], " n'est pas dans une des quatre formations.") erreur = True if not erreur: print("Tous les étudiants sont dans une formation.") # Question 5 print("\n *** Question 5 ***") def nbre_prenoms(prenom): """ str -> int, renvoie le nombre d'étudiants qui ont prenom comme prénom. CU: prenom est un str """ assert(type(prenom) == type("")) prenomARechercher = prenom.upper() nb=0 for i in l_etudiants: if i[2] == prenomARechercher: nb += 1 return nb print("Il y a ", nbre_prenoms("Alexandre"), " étudiants qui s'appellent Alexandre") print("Il y a ", nbre_prenoms("Camille"), " étudiantes qui s'appellent Camille") # Question 6 print("\n *** Question 6 ***") prenomsUniques = set() for i in l_etudiants: prenomsUniques.add(i[2]) print("Il y a ", len(prenomsUniques), " prénoms différents") # Question 7 print("\n *** Question 7 ***") lPrenoms=[i[2] for i in l_etudiants] freq = ["", 0] for i in prenomsUniques: tmp = lPrenoms.count(i) if tmp > freq[1]: freq = i, tmp print("Le prénom le plus courant est ", freq[0], " avec ", freq[1], " personnes portant ce prénom.") # Question 8 print("\n *** Question 8 ***") idUniques = set() for i in l_etudiants: idUniques.add(i[0]) if len(idUniques) != len(l_etudiants): print("Erreur, il existe au moins un id qui n'est pas unique") else: print("Tous les id sont uniques") # Question 9 print("\n *** Question 9 ***") nbLICAM = nbMASS = nbPEIP = nbSESI = 0 for i in l_etudiants: if i[3] == "LICAM": nbLICAM += 1 elif i[3] == "MASS": nbMASS += 1 elif i[3] == "PEIP": nbPEIP += 1 else: nbSESI += 1 print("Il y a ", nbLICAM, " étudiants en LICAM ", nbMASS, " en MASS ", nbPEIP, " en PEIP et ", nbSESI, " en SESI.") # Question 10 print("\n *** Question 10 ***") def liste_formation(form): """ str -> liste de quadruplets, renvoie la liste des étudiants dans la formation passée en paramètre CU: form est un str qui vaut: SESI, LICAM, MASS ou PEIP """ assert(type(form) == type("")) assert(form == "SESI" or form == "PEIP" or form == "LICAM" or form == "MASS") ret = list() for i in l_etudiants: if i[3] == form: ret.append((i[0], i[1], i[2], i[4])) return ret print("Liste des PEIP:\n", liste_formation("PEIP"))