Académique Documents
Professionnel Documents
Culture Documents
Les exercices de cette fiche portent sur la manipulation de listes Python. Les exemples donnés sont
tous des listes de nombres entiers, mais les fonctions demandées devraient marcher avec des listes
d’éléments de types quelconques.
Exercice 1 : Milieu
Écrire une fonction milieu qui prend une liste de longueur impaire et retourne l’élément du
milieu.
Exemples :
- milieu([2, 9, 10, -1, 0]) donne 10;
- milieu([8]) donne 8.
Rappel : la longueur d’une liste (nombre d’éléments) est donnée par la fonction len(), et la
première position est indexée 0.
2.2 – Écrire une fonction position(a, v) qui qui prend en entrée une liste a (de longueur
quelconque) et une valeur v, et retourne la première position dans a où on trouve v. Si v n’est pas
présente dans a, alors la fonction doit retourner -1.
Par exemple, si on passe en entrée la liste [2, 4, 9, 10, -1, 10] et la valeur 10, la fonction
retourne 3 car la première occurrence de la valeur 10 est à la position 3 (rappel : la première position
est indexée 0).
Pour la même liste et la valeur 3, la fonction doit retourner -1 car la valeur 3 n’est pas présente dans
la liste.
2.3 – Écrire une fonction combien(a, v) qui prend en entrée une liste a (de longueur
quelconque) et une valeur v, et retourne le nombre de fois que v apparait dans la liste a. Si v
n’est pas présente dans a, alors la fonction doit retourner 0.
page 1/6
Par exemple, si on passe en entrée la liste [2, 4, 9, 10, -1, 10] et la valeur 10, la fonction
retourne 2 car 10 apparaît deux fois dans la liste.
Pour la même liste et la valeur 3, la fonction doit retourner 0 car la valeur 3 n’est pas présente dans
la liste.
Exercice 3
On considère le code suivant:
a = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
for i in range(20):
if (i%2==0):
a[i//2] = i+1
Exercice 4: miroir
4.1 – Écrire une fonction miroir(a) qui prend une liste (de longueur quelconque n) et modifie
la liste pour qu’elle contienne les éléments de a suivis des n -1 premiers éléments dans l’ordre
opposé.
Par exemple, si on passe en entrée la liste [1, 2, 3], après exécution de la fonction la liste doit
contenir [1, 2, 3, 2, 1]. Si la liste donnée en entrée est vide ou de longueur 1, la liste reste
doit rester inchangée.
4.2 – Écrire une fonction miroir2(a) qui fait la même chose que la fonction miroir, sauf qu’au
lieu de modifier la liste d’entrée, la fonction doit retourner une nouvelle liste contenant les
éléments en miroir, de sorte que la liste donnée en entrée soit toujours inchangée.
Exercice 5: rotation
Écrire une fonction rotation(a, k) qui prend en entrée une liste a de longueur quelconque,
et décale les éléments de k positions (vers l’avant ou l’arrière selon le signe de k). Le décalage
doit « boucler » au début et à la fin de la liste, c’est-à-dire que si le dernier élément de la liste est
décalé « vers l’avant » d’une position, il se retrouve au début de la liste.
Exemples :
- si on passe en entrée la liste [1, 2, 3, 4, 5, 6] et la valeur 2, les éléments sont
décalés de 2 positions « vers l’avant » : on obtient la liste [5, 6, 1, 2, 3, 4].
Remarquer que les deux derniers éléments se sont retrouvés au début.
- Si on passe en entrée la liste [9, 2, 0, 0, 6, 6] et la valeur -1, les valeurs de la
liste sont décalées d’une position vers l’arrière, et on obtient :
[2, 0, 0, 6, 6, 9]
page 2/6
Si la liste donné en entrée est vide ou de longueur 1, elle doit rester inchangée.
Indication : pour cet exercice, il est difficile de modifier la liste « en place ». Il y a deux
approches possibles : soit on crée une nouvelle liste qu’on remplit avec les valeurs décalées, avant
de toutes les recopier dans la liste initiale, soit on décale les valeurs d’une position à la fois (ce qui
est gérable « en place »), et on fait plusieurs passes.
Exercice 6: Uniques
Écrire une fonction uniques qui prend une liste en entrée et retourne True si tous les éléments
de la liste sont uniques, et False s’il y a des duplicata.
Par exemple, si on passe en entrée la liste [2, 4, 9, 10, -1, 0], la fonction doit retourner
True, car aucune valeur n’est répétée. Si on passe la liste [3, 1, 5, 1, -9] en entrée, alors
la fonction retourne False car le nombre 1 est répété. Note : selon cette définition, pour une liste
de longueur 0 ou 1, la fonction doit retourner True.
Exercice 7
On considère la fonction maFonction() donnée ci-dessous :
def maFonction(a):
b = []
for v in a:
z = (v > 0 and v%2==0)
b.append(z)
return b
On appelle cette fonction sur plusieurs listes différentes. Pour chaque liste, écrire à droite
le contenu de la liste retourné par la fonction.
Code Contenu de la liste retournée
a1 = [3, 2, 1]
b1 = maFonction(a1) b1=________________________________________
a2 = [1, 2, 3, 4]
b2 = maFonction(a2) b2=________________________________________
a3 = [5, 2, 5, 0, 4, 0]
b3 = maFonction(a3) b3=________________________________________
page 3/6
Le but de cet exercice est d’écrire une fonction qui calcule les points attribués pour un
mouvement. Les données d’entrée (paramètres de la fonction) sont la « valeur de base » (un
nombre décimal qui reflète la difficulté du mouvement) et les notes des différents juges
(une liste d’entiers : il y a 9 notes, et leurs valeurs sont comprises entre -3 et +3).
La fonction du calcul est la suivante : on prend les 9 notes des juges, on enlève la note la
plus haute et la note la plus basse (quand il y a plusieurs fois la même note haute ou basse,
on l’enlève une seule fois), puis on fait la moyenne des 7 notes restantes. Cette moyenne
est ajoutée à la « valeur de base » du mouvement, et le total est le nombre de points attribué
au mouvement.
Par exemple, pour un mouvement dont la valeur de base est de 3.2 et les notes d’exécution
sont [3, 2, 1, 2, 3, 3, 2, 2, 3] on enlèverait le 1 (note la plus basse) et un
des 3 (note la plus haute) et on obtiendrait la moyenne d’exécution de 17 / 7 = 2.43. Ajoutée
à la valeur de base, on obtiendrait la note finale de 5.63 pour le mouvement.
Écrire une fonction points(vbase, notes) qui calcule les points attribués pour un
mouvement, selon le calcul décrit ci-dessus. Le paramètre vbase est un nombre décimal
correspondant à la valeur de base, et notes est une liste contenant les notes des juges.
Indications :
- On peut identifier la note la note la plus haute et la note la plus basse dans un par-
cours de la liste (calcul du max / min, sachant que les notes sont comprises entre -
3 et 3), et faire en même temps (dans le même parcours de la liste) la somme de
toutes les notes. On pourra ensuite soustraire la note la plus haute et la note la plus
basse de la somme.
- La moyenne des notes doit être une valeur exacte (décimale) et non arrondie.
page 4/6
Exercice 10: clés longues
On considère un dictionnaire associant comme des chaines de caractères (clés) à des nombres en-
tiers (valeurs).
10.1 – Faire la liste des clés (string) qui ont plus de caractères que le nombre associé.
10.2 – Faire la somme des valeurs (nombres) associées à des clés de moins de 5 caractères.
page 6/6