Merge remote-tracking branch 'origin/master'
Conflicts: S2/TP1/tp1.py
This commit is contained in:
commit
a89974f15e
115
S2/TP1/tp1.py
115
S2/TP1/tp1.py
|
@ -1,6 +1,11 @@
|
||||||
# Jean-loup Beaussart
|
# Jean-loup Beaussart
|
||||||
# 20/01/2015
|
|
||||||
# TP1: Gestion d'une promo d'étudiants - Structures itérables
|
# 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
|
# http://www.fil.univ-lille1.fr/~L1S2API/CoursTP/tp1_structures_iterables.html
|
||||||
|
|
||||||
from etudiants import *
|
from etudiants import *
|
||||||
|
@ -156,15 +161,117 @@ def liste_formation(form):
|
||||||
|
|
||||||
print("Liste des PEIP:\n", liste_formation("PEIP"))
|
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'))
|
||||||
|
|
Reference in a new issue