NOTICE
All files on this site have been moved to http://www.wikilivres.ca. All future contributions to Wikilivres should be made there.
This site will be closed on June 6th, 2012.
Page:Swinnen - Apprendre Python, 2010.djvu/77
Free texts and images.
(L'expression a < b est évaluée, et son résultat (« vrai ») est mémorisé dans la variable c. De même pour le résultat de l'expression inverse, dans la variable d[1]
À l'aide d'une petite astuce, nous pouvons quand même vérifier que ces valeurs True et False sont en réalité les deux nombres 1 et 0 « déguisés »
|
|
(En utilisant les valeurs des variables c et d comme indices pour extraire les éléments de la liste accord, nous confirmons bien que False =0 et True =1.)
Le petit script ci-après est très similaire au précédent. Il nous permet de tester le caractère « vrai » ou « faux » d'une chaîne de caractères :
|
|
Vous obtiendrez « faux » pour toute chaîne vide, et « vrai » pour toute chaîne contenant au moins un caractère. Vous pourriez de la même manière tester la « véracité » d'une liste, et constater qu'une liste vide est « fausse », alors qu'une liste ayant un contenu quelconque est « vraie »[2].
L'instruction if ch: , à la troisième ligne de cet exemple, est donc équivalente à une instruction du type : if ch !="": , du moins de notre point de vue d'êtres humains.
Pour l'ordinateur, cependant, ce n'est pas tout à fait pareil. Pour lui, l'instruction if ch: consiste à vérifier directement si la valeur de la variable ch est une chaîne vide ou non, comme nous venons de le voir. La seconde formulation, par contre : if ch != "": lui impose de commencer par comparer le contenu de chà la valeur d'une autre donnée que nous lui fournissons par notre programme (une chaîne vide), puis à évaluer ensuite si le résultat de cette comparaison est lui-même « vrai » ou « faux » (ou en d'autres termes, à vérifier si ce résultat est lui-même « True » ou « False »). Cela lui demande donc deux opérations successives, là où la première formulation ne lui en demande qu'une seule. La première formulation est donc plus performante.
Pour les mêmes raisons, dans un script tel celui-ci :
|
|
- ↑ Ces variables sont d'un type entier un peu particulier : le type « booléen ». Les variables de ce type ne peuvent prendre que les deux valeurs True et False (en réalité, 1 et 0).
- ↑ Les autres structures de données se comportent d'une manière similaire. Les tuples et les dictionnaires que vous étudierez plus loin (au chapitre 10) sont également considérés comme « faux » lorsqu'ils sont vides, et « vrais » lorsqu'ils possèdent un contenu.