diff --git a/S2/TP1/tp1.py b/S2/TP1/tp1.py index b03136e..9de52c7 100644 --- a/S2/TP1/tp1.py +++ b/S2/TP1/tp1.py @@ -1,6 +1,11 @@ # Jean-loup Beaussart -# 20/01/2015 # TP1: Gestion d'une promo d'étudiants - Structures itérables + +# coding=utf-8 +# PREUD'HOMME Geoffrey +# Donné le 20/01/2015 +# TP1 Gestion d'une promotion d'étudians + # http://www.fil.univ-lille1.fr/~L1S2API/CoursTP/tp1_structures_iterables.html from etudiants import * @@ -156,15 +161,117 @@ def liste_formation(form): print("Liste des PEIP:\n", liste_formation("PEIP")) +# Geoffrey + +def question(numero): + print('\n***', 'Question', numero, "***") + +question(1) + +test = type(l_etudiants) is list +for i in l_etudiants: + if not (type(i) is tuple and len(i) == 5 and type(i[4]) is int): + test = False + for j in range(4): + if not type(i[j]) is str: + test = False +print('Le test a retourné', test) - +question(2) +print('l_etudiants', 'contient', len(l_etudiants), 'étudiants') +question(3) - +# TODO +print('L\'indice de ma fiche étudiant est forcément inférieur au nombre de fiche, diviser ce premier nombre par ce deuxième revient à garder le premier') +question(4) - +test4 = True +for i in l_etudiants: + if not i[3] in ('LICAM', 'MASS', 'PEIP', 'SESI'): + test4 = False + +print('Le test a retourné', test4) + +question(5) + +def nbre_prenoms(prenom): + """ + str → int + Renvoie le nombre d’étudiants dont le prénom est passé en paramètre + """ +## n = 0 +## for i in l_etudiants: +## if i[2] == prenom: +## n += 1 +## return n + return [i[2] for i in l_etudiants].count(prenom) + +nbreAlexandre = nbre_prenoms('Alexandre') +terminaisonAlexandre = 's' if nbreAlexandre > 1 else '' +print('Il y a', nbreAlexandre, 'étudiant' + terminaisonAlexandre, 'nommé' + terminaisonAlexandre, 'Alexandre') + +nbreCamille = nbre_prenoms('Camille') +terminaisonCamille = 'e' + 's' if nbreCamille > 1 else '' +print('Il y a', nbreCamille, 'étudiant' + terminaisonCamille, 'nommé' + terminaisonCamille, 'Camille') + +question(6) + +listePrenoms = [i[2] for i in l_etudiants] +ensemblePrenoms = set(listePrenoms) + +print('Il y a', len(ensemblePrenoms), 'prénoms différents parmi tous les étudiants') + +question(7) + +nbresPrenoms = dict((i, nbre_prenoms(i)) for i in ensemblePrenoms) + +prenomsPlusFrequent = set() +nbrePrenomsPlusFrequents = 0 +for i in nbresPrenoms: + if nbresPrenoms[i] > nbrePrenomsPlusFrequents: + prenomsPlusFrequent = {i} + nbrePrenomsPlusFrequents = nbresPrenoms[i] + elif nbresPrenoms[i] == nbrePrenomsPlusFrequents: + prenomsPlusFrequent.add(i) + +terminaison = 's' if len(prenomsPlusFrequent) > 1 else '' +print('Le'+terminaison+' prénom le'+terminaison+' plus fréquent'+terminaison, 'sont' if len(prenomsPlusFrequent) > 1 else 'est', ', '.join(prenomsPlusFrequent)) + +question(8) + +ids = set() + +test8 = True + +for i in l_etudiants: + if i[0] in ids: + test = False + else: + ids.add(i[0]) + +question(9) + +parcours = dict() + +for i in l_etudiants: + if not i[3] in parcours: + parcours[i[3]] = 0 + parcours[i[3]] += 1 + +print('Il y a', ', '.join(list(str(parcours[i])+' étudiants en '+i for i in parcours))+'.') + +question(10) + +def liste_formation(formation): + """ + ... + """ + return list(i[0:2]+(i[4],) for i in l_etudiants if i[3] == formation) + +print(liste_formation('PEIP'))