Pour expérimenter davantage avec le langage Python, les différents opérateurs sont un bon moyen de progresser. L’opérateur sur lequel cet article se concentrera est très particulier et répond à un problème commun que les élèves ou les ingénieurs rencontrent souvent : nommer une variable.
Cet article traite une notion hors programme pour la prépa ECG et s’adresse à un niveau avancé en Python.
Motivation
On pourrait tout d’abord penser que cet opérateur n’a que très peu d’intérêt étant donné qu’aucun programme d’informatique en prépa ne mentionne cet élément.
Cette remarque est valable, mais il faut garder à l’esprit que des éléments Python hors programme (HP) remplissent un double objectif :
- Ils nous familiarisent avec le langage Python et nous permettent de gagner en fluidité dans nos raisonnements.
- Ils nous permettent, à l’oral des concours, d’aller extrêmement vite et de montrer son niveau d’informatique.
Bref, il est bon de profiter de ce que ces commandes peuvent nous apprendre dans tous les cas.
Problème à résoudre
Nommer correctement une variable
Nommer une variable fait désormais partie de notre « arsenal » d’informatique et ne nous pose plus de problèmes. On le fait comme suit :
Cependant, en informatique, il arrive que l’on ait besoin d’une variable (souvent une liste annexe en pratique) lors d’un exercice. De plus, cela arrive lorsque l’on a déjà commencé à écrire un programme et qu’on doit souvent introduire ladite variable plus haut.
Cela ne pose pas de problèmes lorsque l’on est sur un ordinateur. On peut simplement appuyer sur Entrée pour créer une nouvelle ligne. Cependant, pour gagner en concision ou bien simplement pour éviter d’avoir à barrer (quand on écrit le programme sur une feuille) le programme et le réécrire totalement, on peut utiliser l’opérateur « Walrus ».
Exemple de programme problématique
Dans le programme ci-dessous, on crée une liste « L » par exemple. Le but est de stocker tous les nombres impairs dans une liste « i », et d’ajouter à cette liste, à la fin, sa longueur « len() ». Cependant, dans ce programme, on se rend bien vite compte que l’on a oublié de créer une liste « i ».
En effet, on pourrait réaliser un programme sans utiliser de liste annexe « i », mais cela créera la même liste deux fois. Ce qui n’est pas désirable, car cela pèse encore plus sur l’ordinateur. En effet, la contrainte purement électronique est ici minime, mais sur des calculs plus longs, elle peut se révéler importante.
Voici un exemple :
Opérateur « Walrus »
Fonction
Cet opérateur rend un grand service à celui qui code lorsqu’il se retrouve dans un des scénarios susmentionnés. En effet, cet opérateur permet simultanément d’assigner une valeur à une variable et d’utiliser cette variable dans un calcul.
Cela résout donc les problèmes vus en début d’article, notamment au niveau de l’électronique et l’allocation mémoire qui sont toutes les deux moins sollicitées par une telle manœuvre.
Syntaxe
Cet opérateur se note comme suit :
Cependant, il ne faut pas oublier que des parenthèses sont requises à chaque fois pour assurer le bon déroulement de l’exécution du programme, autour des deux membres de l’expression.
Origine du nom
Personne ne sait réellement d’où vient le nom « Walrus », qui veut en fait dire « morse », comme l’animal. Je stipule, à titre entièrement personnel, que l’on peut voir les deux dents caractéristiques d’un morse si l’on opère une rotation du symbole de 90 degrés vers la gauche, avec les « yeux » qui surplombent lesdites dents.
Exemple
Reprenons notre exemple précédent :
Avec le nouvel opérateur de notre « répertoire », on peut transformer le programme comme suit, et instantanément le rendre correct, sans avoir besoin de rajouter une ligne.
Limites
Cependant, il faut garder à l’esprit que cela ne peut régler tous les problèmes que l’on rencontre et que cette assignation de variable reste inscrite dans la « temporalité » que met le programme à s’exécuter.
En effet, dans le programme ci-dessous, même si l’on a recours à cet opérateur, la création de « i » se fait à l’intérieur d’une boucle « for ». Ainsi, à chaque fois que l’on change de « i », id est que le programme réalise une itération de la boucle, on recrée une liste « i ». Ce qui n’est pas le but recherché.
Cela explique donc que la dernière itération, soit quand « i » prend la dernière valeur de la liste, 97, la liste « i » se réinitialise et ainsi, il n’est qu’une variable dans la liste « i ». Ce qui explique en soi le dernier item de la liste , 1.
Conclusion
L’opérateur « Walrus » est l’un des opérateurs les plus intéressants et figure parmi les raccourcis les plus utiles du langage Python. Par sa simplicité mais aussi sa fonction, il nous permet de nous tirer de situations épineuses en démontrant de notre capacité à aller plus loin que le programme. Ce qui est toujours valorisé quand on présente cela avec humilité.
Le Major n°15 – Spécial Écrits 2024