Aller au contenu

Gestion des Ă©tudiants

L'usage de la calculatrice n'est pas autorisé

Durée: 1h

Question 1

Créez un programme qui demande à l'utilisateur d'entrer le prénom, le nom et le numéro de matricule d'un étudiant, puis stocke ces informations dans un dictionnaire. Les clés du dictionnaires correspondront aux noms des étudiants et ses valeurs seront des tuples à trois éléments (prénom, nom, matricule). Affichez ce dictionnaire à l’écran. L’intérêt d’utiliser un dictionnaire dans ce cas réside dans le fait de pouvoir accéder aux informations des étudiants grâce à leurs noms.

Det={}
def saisie(Det):
    N=input("Nom Ă©tudiant")
    P=input("Prénom étudiant")
    M=input("Matricule Ă©tudiant")
    Det[N]=[P,N,M]

saisie(Det)

Question 2

Modifiez votre programme de manière à ce que l'utilisateur puisse entrer autant de saisies qu'il le souhaite. Le processus de saisie s’arrête lorsque l'utilisateur entre le mot "FIN". Utilisez une boucle while.

S="OUI"
while S!="FIN":
    saisie(Det)
    S=input("Encore un Ă©tudiant Ă  saisir ou est-ce la FIN ?")

Question 3

Affichez de manière conviviale tous les étudiants de votre dictionnaire construit au point précédent. Utilisez un parcours par clés de votre dictionnaire.

for e in Det.keys():
    print(Det[e][0]," ",Det[e][1],"a pour numéro de matricule le ",Det[e][2])

Question 4

DĂ©terminer si un Ă©tudiant du nom de "Obama" appartient Ă  votre dictionnaire, et, si tel est le cas, renvoyez les informations de cet Ă©tudiant.

if "Obama" in Det:
    return Det["Obama"]
else:
    return False

Question 5

Créez un script qui détermine si le numéro de matricule 12345678 existe dans votre dictionnaire et, si tel est le cas, renvoyez les informations de l'étudiant correspondant. Utilisez un parcours “clé-valeur” de votre dictionnaire.

def recherche1():
    for i,j in Det.items():
        if j[2]==12345678:
            return j
    return False

Question 6

Dans l’état actuel de votre programme, il est impossible d’enregistrer deux étudiants qui portent le même nom. Pourquoi cela ? Modifier votre programme du point 2 de manière à pouvoir enregistrer des étudiants portant le même nom.

On ne peut pas enregistrer deux étudiants qui portent le même nom, car dans un dictionnaire toutes les clés doivent être différentes.

Pour pouvoir enregistrer des étudiants qui portent le même nom, il faut donc prendre les matricules comme clés du dictionnaire.

La fonction de saisie utilisée dans le point 2 s'écrira alors:

def saisie(Det):
    N=input("Nom Ă©tudiant")
    P=input("Prénom étudiant")
    M=input("Matricule Ă©tudiant")
    Det[M]=[P,N,M]

Question 7

Écrire une fonction, qui, à partir du dictionnaire modifié du point 6, retourne les étudiants dont le nom commence par la lettre C et dont le matricule se termine par un 4.

def recherche2():
    for i,j in Det.items():
        if i[-1]=='4' and j[1][0]=='C':
            return i
    return False