J'espère que ce n'était pas trop di圀icile et que, si vous avez fait des erreurs, vous avez pu les comprendre.
Ce n'est pas du tout grave si vous avez réussi à coder cette fonction d'une manière di圀érente.
En programmation, il n'y a
pas qu'une solution, il y a des solutions.
Transformer une liste en paramètres de fonction
C'est peut-être un peu moins fréquent mais vous devez connaître ce mécanisme puisqu'il complète parfaitement le
premier. Si vous avez un tuple ou une liste contenant des paramètres qui doivent être passés à une fonction, vous pouvez
très simplement les transformer en paramètres lors de l'appel. Le seul problème c'est que, côté démonstration, je me vois
un peu limité.
Ce n'est pas bien spectaculaire et pourtant c'est une fonctionnalité très puissante du langage. Là, on a une liste contenant
des paramètres et on la transforme en une liste de paramètres de la fonction print . Donc, au lieu d'a圀icher la liste
proprement dite, on a圀iche tous les nombres, séparés par des espaces. C'est exactement comme si vous aviez fait
print(1,4,9,16,25,36) .
Oui je vous l'accorde. Ici l'intérêt ne saute pas aux yeux. Mais un peu plus tard, vous pourrez tomber sur des applications où
les fonctions sont utilisées sans savoir quels paramètres elles attendent réellement. Si on ne connaît pas la fonction que
l'on appelle, c'est très pratique. Là encore, vous découvrirez cela dans les chapitres suivants ou dans certains projets.
Essayez de garder à l'esprit ce mécanisme de transformation.
On utilise une étoile * dans les deux cas. Si c'est dans une définition de fonction, cela signifie que les paramètres fournis
non attendus lors de l'appel seront capturés dans la variable, sous la forme d'un tuple. Si c'est dans un appel de fonction,
au contraire, cela signifie que la variable sera décomposée en plusieurs paramètres envoyés à la fonction.
J'espère que vous êtes encore en forme, on attaque le point que je considère comme le plus dur de ce chapitre, mais aussi
le plus intéressant. Gardez les yeux ouverts !
Les compréhensions de liste («
list comprehensions
» en anglais) sont un moyen de filtrer ou modifier une liste très
simplement. La syntaxe est déconcertante au début mais vous allez voir que c'est très puissant.
Parcours simple
Les compréhensions de liste permettent de parcourir une liste en en renvoyant une seconde, modifiée ou filtrée. Pour
l'instant, nous allons voir une simple modification.
#Sinononvaavoirquelquesproblèmeslorsdujoin
fori,parametreinenumerate(parametres):
parametres[i]=str(parametre)
#Lalistedesparamètresnecontientplusquedeschaînesdecaractères
#Àprésentonvaconstituerlachaînefinale
chaine=sep.join(parametres)
#Onajouteleparamètrefinàlafindelachaîne
chaine+=fin
#Onaffichel'ensemble
print(chaine,end='')