TP - Renvoyer un tableau☘
Téléchargez le fichier « à trous » TPB01.21.py
(clic droit -> [Enregistrer sous]) et enregistrez-le dans le dossier
[B01_Tableaux]
.
Consignes communes à chaque partie
Le programme principal contient un appel au module doctest
:
##----- Programme principal et tests -----##
if __name__ == '__main__':
import doctest
doctest.testmod()
Il faudra aussi ajouter vos propres tests dans le programme principal (le
main
) afin de vous entraîner à en réaliser.
Enfin, il faudra essayer de réaliser deux versions pour chaque fonction dont une en générant en compréhension le tableau résultat.
Partie 1 : Sélection d'éléments☘
Complétez le code de la fonction avant_pivot()
qui prend en paramètre un
tableau d'entiers tab
et un entier valeur
et qui renvoie un tableau
constitué des éléments de tab
strictement inférieurs à valeur
.
1 2 3 4 5 6 7 8 |
|
Partie 2 : Copier un tableau☘
Complétez le code de la fonction copier()
qui prend en paramètre un tableau
tab
et qui renvoie un autre tableau ayant les mêmes éléments que tab
, dans
le même ordre.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Attention
Si l'on dispose d'un tableau A
, l'instruction B = A
ne copie pas A
dans B
. Cette instruction consiste à donner un second nom au même
tableau. On a ainsi un seul objet en mémoire, qui porte deux noms.
>>> A = [42, 666, 1789]
>>> B = A
>>> B
[42, 666, 1789]
>>> B is A # B et A sont-ils le même objet
True
>>> B == A # B et A ont-ils le même contenu
True
Un prochain chapitre permettra de comprendre ce comportement.
Partie 3 : Renverser un tableau☘
Complétez le code de la fonction renverser()
qui prend en paramètre un
tableau tab
et qui renvoie un autre tableau ayant les mêmes éléments que
tab
mais dans l'ordre inverse.
1 2 3 4 5 6 7 8 9 |
|
Partie 4 : Trancher un tableau☘
Complétez le code de la fonction trancher()
qui prend en paramètre un tableau
tab
et deux entiers indice_min
et indice_max
et qui renvoie un tableau
constitué des éléments de tab
ayant un indice compris entre indice_min
(inclus) et
indice_max
(inclus).
1 2 3 4 5 6 7 8 9 10 11 |
|
Il faudra que votre programme lève l'erreur suivante :
>>> trancher([2, 6, 3, 9, 7, 42], 4, 1)
AssertionError: Mauvaise plage d'entiers
Partie 5 : Occurrences de chaque élément☘
Complétez le code de la fonction ranger()
qui prend en paramètres un tableau
tab
d'entiers compris entre 0 et 9. Cette fonction renvoie un tableau de 10
entiers qui correspondent respectivement au nombre de 0
dans tab
, au nombre
de 1
dans tab
, au nombre de 2
dans tab
, etc...
1 2 3 4 5 6 7 8 9 10 |
|
Il faudra que votre programme lève l'erreur suivante :
>>> ranger([])
AssertionError: Le tableau ne doit pas être vide
Important
Il est inutile de chercher une définition par compréhension pour cet exercice.