Pour certaines applications, il est nécessaire de savoir lire et écrire dans des fichiers. Généralement, les informations dans les fichiers sont de type string (chaîne de caractères). Il est donc primordial de savoir manipuler ce type de donnée.
Chaine de caractère ou liste ?
Par défaut, toutes les chaines de caractères sont considérées comme des listes. En effet, en effet, on accéder à n’importe quelle lettre de la chaine en utilisant les indices comme pour les listes. Par exemple l’instruction suivante :
« Bonjour »[0]
‘B’
Retournera la lettre B. Et « Bonjour »[-1] retournera la lettre ‘r’
Concaténation
Les chaines de caractère peuvent être concaténées tout simplement en utilisant l’opérateur d’addition « + ». Cela simplifie beaucoup la programmation. Mais cela dit, il faut faire très attention en utilisant cette opération, surtout lorsqu’on lit des données chiffrées à partir d’un fichier texte, ou quand on fait un programme interactif avec l’utilisateur. Dans ces deux cas de figure, le programme considère les chiffres (extraits du texte ou entrés par l’utilisateur au clavier) comme une chaine de caractère.
Prenons un exemple : soit le programme suivant qui demande à l’utilisateur d’entrer 2 nombres , puis le programme fait l’addition de ces 2 nombres.
a = input(« untrez un nombre : « )
b = input(« untrez un 2eme nombre : « )
print(a+b)
En exécutant le programme, il demande d’entrer un nombre, on entre le chiffre 1 et entrée. Puis il demande d’entrer un deuxième nombre, on entre encore 1 puis entrée. Le programme a retourné 11 comme résultat. Cela est normal car la fonction input() retourne des chaines de caractère. Pour pouvoir faire une addition au sens mathématique, il faut convertir ces chaines de caractère en nombres (entiers ou décimaux). On utilisera le programme suivant à la place :
a = float(input(« untrez un nombre : « ))
b = float(input(« untrez un 2eme nombre : « ))
print(a+b)
Et là, le résultat sera égale à 2.0. (La fonction float convertit en nombres décimaux).
De la même manière, il faut faire attention quand on utilise l’opérateur multiplication (*). Si l’on multiplie une chaine de caractère par un nombre entier, cette chaine de caractère sera répétée selon le nombre entier. Ainsi le code suivant :
a = input(« untrez un nombre : « )
b = input(« untrez un 2eme nombre : « )
print(a*int(b))
En entrant 1 pour la variable a et 5 pour la variable b, le code retournera 11111.
Quelques méthodes utiles
La méthode replace()
Cette méthode prend 2 arguments, le premier correspond à la partie que l’on veut remplacer (une ou plusieurs lettres), et le deuxième argument correspond au texte de remplacement. Voici un exemple :
« Bonjour ».replace(« jour », »soir »)
‘Bonsoir’
La méthode find()
Cette méthode permet de chercher un élément dans la chaine de caractère, elle prend 1 argument, celui-ci correspond à la partie que l’on cherche. Le résultat retourné correspond à :
- S’il existe, à l’indice de l’emplacement de l’élément recharhé dans la chaine de caractère.
- S’il n’existe pas le résultat retourné sera égale à -1.
Voici un exemple :
« Bonjour ».find(‘o’)
1
« Bonjour ».find(‘c’)
-1
« Bonjour ».find(‘b’)
-1
Attention à la casse, un B majuscule n’est pas pareil qu’un b miniscule !
D’autres méthodes upper(), capitalize(), lower()
Si vous utilisez un IDE comme PyCharm, vous pouvez découvrir d’autres types de méthodes en mettant un point après une chaine de caractère, il vous sera proposé plusieurs méthodes dont les noms sont suffisamment explicitent. Voici quelques unes que je trouve très utiles :
"Bonjour".upper()
'BONJOUR'
"Bonjour".capitalize()
'Bonjour'
"bonjour".capitalize()
'Bonjour'
"BonJour".lower()
'bonjour'