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.