This commit is contained in:
Geoffrey Frogeye 2015-01-25 23:36:36 +01:00
parent 41ad24cd92
commit 28da67cc1a

View file

@ -1,4 +1,4 @@
# BEAUSSART Jean-loup # BEAUSSART Jean-loup
# PREUD'HOMME Geoffrey # PREUD'HOMME Geoffrey
# Donné le 20/01/2015 # Donné le 20/01/2015
# TP1 Gestion d'une promotion d'étudians - Structures itérables # TP1 Gestion d'une promotion d'étudians - Structures itérables
@ -7,18 +7,19 @@
from etudiants import * from etudiants import *
def question(numero): def question(numero):
print('\n***', 'Question', numero, "***") print('\n***', 'Question', numero, "***")
question(1) question(1)
test1 = type(l_etudiants) == list test1 = type(l_etudiants) == list
for i in l_etudiants: for i in l_etudiants:
if not (type(i) == tuple and len(i) == 5 and type(i[4]) == int): if not (type(i) == tuple and len(i) == 5 and type(i[4]) == int):
test1 = False test1 = False
for j in range(4): for j in range(4):
if not type(i[j]) == str: if not type(i[j]) == str:
test1 = False test1 = False
print('Le test a retourné', test1) print('Le test a retourné', test1)
@ -31,11 +32,12 @@ print("Il y a", len(l_etudiants), "étudiants dans la liste")
question(3) question(3)
monId = 11501230 # Jean-Loup monId = 11501230 # Jean-Loup
# monId = 11500683 # Geoffrey # monId = 11500683 # Geoffrey
fiche = l_etudiants[monId%len(l_etudiants)] fiche = l_etudiants[monId % len(l_etudiants)]
print("Cette fiche est celle de", fiche[2], fiche[1], "qui est en", fiche[3], fiche[4], "et son id est le", fiche[0]) print("Cette fiche est celle de", fiche[2], fiche[1],
"qui est en", fiche[3], fiche[4], "et son id est le", fiche[0])
question(4) question(4)
@ -49,6 +51,7 @@ print('Le test a retourné', test4)
question(5) question(5)
def nbre_prenoms(prenom): def nbre_prenoms(prenom):
""" """
str int str int
@ -59,17 +62,22 @@ def nbre_prenoms(prenom):
return [i[2] for i in l_etudiants].count(prenom.upper()) return [i[2] for i in l_etudiants].count(prenom.upper())
print("Il y a", nbre_prenoms("Alexandre"), "étudiants qui s'appellent Alexandre") print("Il y a", nbre_prenoms("Alexandre"),
print("Il y a", nbre_prenoms("Camille"), "étudiant(e)s qui s'appellent Camille") "étudiants qui s'appellent Alexandre")
print("Il y a", nbre_prenoms("Camille"),
"étudiant(e)s qui s'appellent Camille")
question(6) question(6)
ensemblePrenoms = set([i[2] for i in l_etudiants]) ensemblePrenoms = set([i[2] for i in l_etudiants])
print('Il y a', len(ensemblePrenoms), 'prénoms différents parmi tous les étudiants') print('Il y a', len(ensemblePrenoms),
'prénoms différents parmi tous les étudiants')
question(7) question(7)
# La question demande "quel est le prénom le plus fréquent", nous nous sommes permis ici de répondre à la question "quels sont les prénoms les plus fréquents" # La question demande "quel est le prénom le plus fréquent", nous nous
# sommes permis ici de répondre à la question "quels sont les prénoms les
# plus fréquents"
nbresPrenoms = dict((i.upper(), nbre_prenoms(i)) for i in ensemblePrenoms) nbresPrenoms = dict((i.upper(), nbre_prenoms(i)) for i in ensemblePrenoms)
@ -82,12 +90,13 @@ for i in nbresPrenoms:
elif nbresPrenoms[i] == nbrePrenomsPlusFrequents: elif nbresPrenoms[i] == nbrePrenomsPlusFrequents:
prenomsPlusFrequent.add(i) prenomsPlusFrequent.add(i)
# Pour tester le cas où plusieurs prénoms arriveraient à la même quantité, décommentez la ligne suivante # Décommentez la ligne suivante pour tester le cas où plusieurs prénoms arriveraient au même rang
# prenomsPlusFrequent.add('MAURICE') # prenomsPlusFrequent.add('MAURICE')
terminaison = 's' if len(prenomsPlusFrequent) > 1 else '' 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)) print('Le' + terminaison + ' prénom le' + terminaison + ' plus fréquent' + terminaison,
'sont' if len(prenomsPlusFrequent) > 1 else 'est', ', '.join(prenomsPlusFrequent))
question(8) question(8)
idUniques = set(i[0] for i in l_etudiants) idUniques = set(i[0] for i in l_etudiants)
@ -105,16 +114,19 @@ for i in l_etudiants:
parcours[i[3]] = 0 parcours[i[3]] = 0
parcours[i[3]] += 1 parcours[i[3]] += 1
print('Il y a', ', '.join(list(str(parcours[i])+' étudiants en '+i for i in parcours))+'.') print('Il y a', ', '.join(
list(str(parcours[i]) + ' étudiants en ' + i for i in parcours)) + '.')
question(10) question(10)
def liste_formation(formation): def liste_formation(formation):
""" """
str list[tuple(str, str, str, int)] str list[tuple(str, str, str, int)]
Renvoie la liste des quadruplets (id, nom, prenom, gpe) correspondants à tous les étudiants appartenant à la formation donnée Renvoie la liste des quadruplets (id, nom, prenom, gpe) correspondants à tous les étudiants
appartenant à la formation donnée
CU : formation est une formation valide CU : formation est une formation valide
""" """
assert(formation in parcours), "La formation donnée n'est pas valide" assert(formation in parcours), "La formation donnée n'est pas valide"
return list(i[0:2]+(i[4],) for i in l_etudiants if i[3] == formation) return list(i[0:2] + (i[4],) for i in l_etudiants if i[3] == formation)