cours python initiation 2 LES CHAÎNES ET DONNÉES BOOLÉENNES
Hello dans le cours python numéro 2.
Un langage de programmation doit permettre de manipuler non seulement des nombres, mais aussi des caractères de texte. Dans le langage informatique italien, une séquence de caractères est appelée une chaîne : le terme dérive de l’assonance avec la chaîne anglaise, (qui signifie corde, fil).
On ouvre IDLE et on tape (attention à ne pas oublier les guillemets avant et après) :
>>> "Bonjour"
'Bonjour, Salut'
>>> "Je suis Luigi"
'Je suis Louis'
>>> "et j'ai 15 ans"
'et j'ai 15 ans!'
>>>
Nous voyons qu’à chaque fois que nous écrivons du texte entre guillemets, IDLE comprend qu’il s’agit d’une chaîne et nous le signale en le colorant en vert. Si nous appuyons sur Entrée, il répond avec les mêmes caractères que nous avons entrés (la réponse d’IDLE est toujours colorée en bleu).
Une chaîne peut donc contenir des lettres (majuscules et minuscules), des chiffres, des espaces et des signes de ponctuation. Les caractères étendus sont également possibles, comme les voyelles accentuées italiennes, mais je recommande de ne pas les utiliser (et donc d’écrire e à la place) car ils peuvent ne pas être reconnus en exécutant Python dans d’autres langues.
Pour définir une chaîne en Python il faut écrire les caractères qui la composent :
entre guillemets : | >>> “J’aime tellement ma mère” “J’aime tellement ma mère” |
ou entre guillemets : | >>> “J’aime tellement maman” “J’aime tellement maman” |
ou entre guillemets triples : | >>> ” ‘Maman je t’aime’ ” ‘Maman je t’aime’ |
ou entre guillemets triples : | >>> “” “Maman je t’aime” “” ‘Maman je t’aime’ |
À ce stade, vous êtes probablement confus : pourquoi y a-t-il quatre façons différentes de faire la même chose ? La réponse est probablement celle-ci : Python, ayant été codé assez récemment, a essayé de “plaire” à ceux qui connaissaient déjà d’autres langages (par exemple, en C les chaînes s’écrivent avec des guillemets doubles alors qu’en Pascal avec des guillemets simples) en leur permettant continuer à utiliser la syntaxe à laquelle il est habitué. C’est probablement une commodité pour un programmeur expérimenté, mais déroute un débutant.
Il faut dire que les quatre alternatives ne sont pas parfaitement équivalentes : la première et la seconde ne permettent pas de s’enrouler dans une chaîne, tandis qu’en utilisant la troisième et la quatrième on peut écrire des chaînes sur plusieurs lignes (nous les utiliserons plus tard). Cependant, pour résoudre le problème, décidez simplement de toujours utiliser l’une des quatre formes possibles : puisque l’écrivain est habitué à programmer en C et C++ (où les guillemets sont utilisés) dans le reste du tutoriel, nous utiliserons la syntaxe avec “” (au lieu de cela, IDLE, comme vous l’avez vu, utilise toujours des guillemets lorsqu’il répond).
On peut aussi écrire des expressions avec des chaînes : en effet, deux opérations sont possibles sur celles-ci : l’addition entre chaînes (qui produit leur concaténation) et la multiplication par un entier (qui concatène plusieurs fois la même chaîne). Essayons d’écrire en IDLE :
>>> "mamma" + "mia"
'mammamia'
>>> "mamma " + "mia"
'mamma mia'
>>> "mamma" * 2
'mammamamma'
>>> "mamma " * 2
'mamma mamma '
>>> 3 * 5 * " zzz "
' zzz zzz zzz zzz zzz zzz zzz zzz zzz zzz zzz zzz zzz zzz zzz '
A noter que lorsqu’on fait des opérations sur des chaînes qui contiennent des mots, un problème se pose pour les espaces : si on concatène deux chaînes elles sont immédiatement placées l’une après l’autre, donc si on veut des espaces entre les mots il faut les ajouter à la fin ou au début. d’une chaîne (notez la différence entre le premier et le deuxième exemple ou entre le troisième et le quatrième).
EXPRESSIONS BOOLÉENNES
Une autre caractéristique importante des langages de programmation est leur capacité à gérer des expressions logiques (c’est-à-dire des déclarations telles que “dix est supérieur à cinq” qui peuvent être vraies ou fausses). En mathématiques, les lois concernant ce type de propositions sont régies par l’algèbre booléenne (du mathématicien anglais George Boole) que vous devez connaître (si vous avez besoin de précisions, voir ici). Essayons d’écrire :
>>> 5 > 1
True
>>> 1 > 5
False
Une expression booléenne est une expression qui ne peut avoir que deux résultats possibles : Vrai ou Faux. Attention : True et False sont deux constantes Python prédéfinies et non des chaînes, elles doivent donc être écrites sans guillemets et toujours avec une majuscule.
Comme d’habitude, si nous écrivons une telle expression dans IDLE, elle répond en affichant sa valeur. Dans les expressions booléennes, nous pouvons également utiliser (en plus des opérateurs habituels) les éléments suivants (essayez de taper les exemples) :
Opérateur | Opérateur | Exemple |
< | Mineur | >>> 3 < 5 True |
<= | <= Inférieur ou égal | >>> 10 <= 10 True |
> | > Majeur | >>> 3 > 5 False |
>= | = Supérieur ou égal | >>> 10 >= 10 True |
== | == Pareil | >>> 3 == 5 False |
!= | ! = Différent | >>> 3 != 5 True |
Quelques remarques importantes :
Nous répétons que lorsqu’un opérateur est composé de deux caractères voisins (comme > =! =) ceux-ci doivent être écrits sans espaces entre eux
L’opérateur d’égalité s’écrit == (avec deux caractères = voisins). En écrivant 3 = 5 vous obtenez une erreur (nous verrons pourquoi dans la prochaine leçon)
Vous pouvez également comparer des chaînes, par ordre alphabétique et en gardant à l’esprit que les majuscules viennent toujours avant les minuscules.
>>> "babbo" < "mamma"
True
>>> "papa'" < "mamma"
False
>>> "Papa'" < "Mamma"
False
>>> "Papa'" < "mamma"
True
>>> "babbo" < "Mamma"
False
Enfin, des expressions booléennes plus complexes peuvent être créées en concaténant des expressions simples à l’aide des opérateurs et ou non (au sens habituel de l’algèbre booléenne)
>>> not (1 > 5)
True
>>> (2 < 4) and (3 < 7)
True
>>> (1 > 5) or (1 > 6)
False
(rappelons que le not inverse la valeur de vérité d’une expression, le et placé entre deux expressions n’est vrai que si les deux expressions sont vraies et le ou est vrai si au moins une des expressions est vraie).
Python permet également de concaténer deux opérateurs avec une syntaxe similaire à celle utilisée en mathématiques :
>>> 3 < 5 < 10
True
Ce type d’expression, (équivalent à 3 <et 5 <10) est largement utilisé pour vérifier si un certain nombre appartient à une plage de valeurs.
Les valeurs numériques sont parfois utilisées dans les expressions booléennes, faisant des conversions assez compliquées de nombre en booléen et vice versa. En général, un nombre est considéré comme vrai s’il est différent de 0 et faux s’il est égal à 0, tandis que vrai et faux sont convertis en 1 et 0 dans les expressions numériques. Jusqu’à ce que vous soyez plus expérimenté, vous devriez éviter d’utiliser des expressions de ce type.
>>> 5 and (3 > 0)
True
>>> 5 + True
Dans la première expression, nous avons un et entre deux valeurs True (et donc le résultat est True); dans le second, True est converti en 1.