Les structures complexes, bien loin de simplement alourdir un programme inutilement, se révèlent absolument essentielles pour remédier à des problèmes de lisibilité. En effet, selon l’objet de l’exercice, on passera rapidement sur certains éléments (construire des listes classiques), pour ensuite se concentrer davantage sur le cœur du programme.
Listes
Conditions simples
Il est peut-être devenu apparent, au fur et à mesure de la découverte de Python, que les listes occupent une place particulière dans la syntaxe Python. En effet, pour maîtriser complètement les listes, il est bon de savoir que plusieurs syntaxes existent, notamment avec « for ».
Voici un scénario classique où l’on veut mettre dans une liste « L » tous les éléments de la liste « T » qui sont pairs :
Voici maintenant un script ayant exactement la même fonction :
Pour ce faire, il faut suivre ce procédé de pensée :
- On crée une liste
- On sélectionne les éléments « i »
- Parmi la liste « T »
- S’ils sont divisibles par 2 (ici, si le reste de la division d’Euclide par 2 est nul), on les ajoute à la liste
Conditions « if » et « else »
Imaginons que, dans le scénario ci-dessus, nous voulions mettre 0 dans une liste si les éléments de la liste première ne sont pas pairs. Alors, nous obtenons un script comme suit :
Cependant, on peut opérer un procédé légèrement similaire à celui du dessus, qui nous fait gagner une ligne de code et qui rend le code encore plus compact :
Remarquons que le « for » est complètement à la fin.
Conditions multiples
Cependant, il reste évidemment le cas où une condition n’est pas suffisante. Il faut ainsi recourir à diverses conditions pour arriver au but recherché.
Évidemment, si l’on affine la sélection dans la liste précédente aux multiples de 4, on peut utiliser le code suivant :
Maintenant, si l’on veut faire apparaître les conditions plus clairement, et si l’usage du « and » n’est pas maîtrisé, on peut procéder comme suit :
La dualité présentée dans cette rubrique est évidemment clé puisqu’elle présente la raison pour laquelle on voit très peu le « double if » : le « and » est plus usuel et bien plus utile. Cependant, il ne faut pas l’oublier dans les cas, rares mais existants, où le « and » peut prêter à confusion, lors d’usages conjoints avec « all », « or » ou bien « any ».
Fonctions
Peu de gens le savent, mais il existe en réalité une façon de procéder à des raccourcis similaires dans les fonctions, ou plus précisément à la « sortie » des fonctions, c’est-à-dire au niveau du « return ».
Voici un exemple d’une fonction qui teste simplement la parité d’un nombre :
On voit immédiatement que cette fonction n’est pas très utile puisqu’elle prend de la place. En plus, elle ne remplit pas une fonction très importante : on peut se permettre de la « comprimer ». Ce sont souvent des fonctions comme cela qu’il faut réduire afin d’augmenter la lisibilité des programmes.
Voici le code le plus optimisé pour cette fonction, qui reflète visuellement l’importance de la fonction dans le programme tout entier.
Conclusion
Armé(e) de ces nouvelles manières d’écrire Python, il faut maintenant les mettre en œuvre absolument pour gagner en fluidité et en efficacité. Ce n’est pas que de la présentation : ces structures permettent non seulement de structurer son programme, mais aussi son esprit. Ce qui sera d’une grande aide pendant les deux années de prépa !