Écrire les critères de sélection
Application directe du cours · niveau 2 · NSI (première), chapitre 6 — Traiter des données en tables · Critères, doublons, décomptes
Énoncé
Écrire les critères de sélection : les élèves de 1G3 ; ceux qui ont plus de 13 sans être en NSI ; ceux qui ne sont ni en 1G1 ni en 1G2.
Corrigé
def en_1g3(l):
return l["classe"] == "1G3"
def bon_hors_nsi(l):
return l["moyenne"] > 13 and not (l["option"] == "NSI")
def ni_1g1_ni_1g2(l):
return not (l["classe"] == "1G1" or l["classe"] == "1G2")
Résultats sur la table de cinq élèves :
| Critère | Élèves retenus |
|---|---|
| en 1G3 | Nour, Yanis |
| plus de 13 sans être en NSI | aucun |
| ni 1G1 ni 1G2 | Nour, Yanis |
Le deuxième critère ne rend rien — et c'est juste. Adam a exactement , et « plus de 13 » s'écrit > 13, non >= 13 : il est donc écarté. Camille a . C'est un résultat vide, pas une erreur : la première chose à faire devant une sélection vide est de vérifier la traduction de l'énoncé, la seconde de vérifier les données.
Le troisième, par la loi de De Morgan. not (A or B) équivaut à (not A) and (not B) : « ni l'un ni l'autre ». Les deux écritures ont été comparées sur chaque ligne de la table — elles s'accordent partout. Écrire la négation directement avec deux != et un and est correct ; écrire != "1G1" or != "1G2" ne l'est pas, et retiendrait tout le monde.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.