Cours Stage - Générer une liste

Exercice : Générer une liste. Une classe hétérogène

L'énoncé

Soit la liste des notes d'une classe après un contrôle noté sur 30 : 

notes = [18, 24, 28, 10, 13, 0, 19, 20, 17, 6, 14, 3, 11, 22, 15].


Question 1

On veut un programme générant la liste notes_sup des notes supérieures ou égales à la moyenne.

Ecrire un programme permettant d'obtenir ce résultat.

notes_sup = [note for note in notes if note >= 15]
 
ou :
 
notes_sup = []
for note in notes:
if note >= 15:
notes_sup.append(note)

Il suffit de vérifier si la condition note >= 15 est vérifiée.

Question 2

On veut un programme qui génère la liste notes_sup_paire des notes paires supérieures ou égales à la moyenne.

Ecrire un programme permettant d'obtenir ce résultat.

notes_sup_paire = [note for note in notes_sup if note % 2 == 0]
 
ou :
 
notes_sup_paire = []
for note in notes_sup:
if note % 2 == 0:
notes_sup_paire.append(note)

On peut utiliser la liste notes_sup que l'on vient de créer.

Question 3

On veut un programme qui génère la liste notes_inter des notes comprises dans l'intervalle ]10, 20].

Ecrire un programme permettant d'obtenir ce résultat.

notes_inter = [note for note in notes if note > 10 and note <= 20]
 
ou :
 
 
notes_inter = []
for note in notes:
if note > 10 and note <= 20:
notes_inter.append(note)
 
ou (sans le and) :
 
notes_inter = []
for note in notes:
if note > 10:
if note <= 20:
notes_inter.append(note)

 En python, l'expression A and B est vraie si à la fois A et B sont vrais. Elle est fausse si un des deux ou les deux sont faux.

Question 4

On veut un programme qui génère la liste notes_spi des notes appartenant aux trois listes créées précédemment.

Ecrire un programme permettant d'obtenir ce résultat.

notes_spi = [note for note in notes_sup_paire if note in note_inter]
 
 
ou :
 
 
notes_spi = []
for note in notes_sup_paire:
if note in note_inter:
notes_spi.append(note)

Les notes des notes_sup_paire appartient aussi à notes_sup.

Question 5

Pour finir, on veut un programme génèrant la liste notes_spid3 qui met sur 20 les notes de notes_spi divisibles par 3.

Ecrire un programme qui permet d'obtenir ce résultat.

Quelle est la valeur obtenue restante ?

notes_spid3 = [note * 2 / 3 for note in notes_spi if note % 3 == 0]
 
ou :
 
notes_spid3 = []
for note in notes_spi:
if note % 3 == 0:
notes_spid3.append(note * 2 / 3)
 
 
La valeur finale obtenue est 12.

Pour mettre une note sur 30 sur 20, on la multiplie par 2 / 3.


Un nombre est divisible par 3, si le reste de la division entière (modulo) est nul.