Chaînes de caractères avec Python
Vous débutez l’apprentissage de Python et vous souhaitez réaliser des opérations basiques sur du texte ? Voici une brève introduction…
Apostrophes et guillemets
Un texte s’écrit entre apostrophes ou entre guillemets anglo-saxons. Si le texte ne comporte ni apostrophe ni guillemets, vous pouvez choisir l’un ou l’autre mais pas les deux : en écrivant print (" Salut’) vous ne récolterez qu’un message d’erreur.
Exemple. Ci-dessous, le texte à afficher comporte une apostrophe. Il est donc mis entre guillemets.
print("je m’appelle Léon")
Maintenant, le texte comporte des guillemets. On l’encadre avec des apostrophes :
print('il a dit « bonjour »')
Sinon, vous pouvez placer un antislash avant l’apostrophe…
print('il m\'a dit "bonjour"')
Si vous écrivez un nombre entre apostrophes, il sera donc considéré comme du texte et il vous sera impossible de faire des opérations mathématiques. Pour autant, un nombre en format texte n’est pas toujours une erreur. Un matricule ou un code postal sont des nombres sur lesquels on ne fait aucune opération.
Pour aller à la ligne : "\n"
Remarquez que dans une chaîne de caractères toutes les lettres et accents sont acceptés. En fait, n'importe quel caractère Unicode, émoji compris, est reconnu.
Concaténations
Une concaténation de chaînes nécessite le signe +.
va1 = 'Pulp '
va2 = 'fiction'
print(va1 + va2)
La console affiche Pulp fiction
Attention, Python ne peut pas concaténer du texte avec un nombre (sauf si celui-ci est converti en texte).
Vous pouvez également multiplier une chaîne de caractères.
texte = 'Ha ! '
Print(3 * texte)
Vous obtenez : Ha ! Ha ! Ha !
Transformations
Vous pouvez transformer ou afficher une chaîne de caractères en minuscules ou en majuscules. Ci-dessous, la variable n’est pas modifiée. Seule l'écriture change.
var = 'BonJOur'
print(var.upper())
Python affiche BONJOUR
Au contraire…
var = 'BonJOur'
print(var.lower())
Python affiche bonjour
Et pour avoir une première lettre en majuscule :
var = 'BonJOur'
print(var.capitalize())
Python affiche Bonjour
Ces instructions sont plus utiles qu’il n’y paraît. Par exemple, lorsqu’un utilisateur saisit son nom dans un formulaire disponible par Internet sans prêter attention à la casse, le texte peut être converti convenablement avant d’être sauvegardé dans une base de données.
Recherches
La longueur d’une chaîne est obtenue par la fonction len. D’ailleurs, celle-ci peut aussi bien s’appliquer à une liste.
texte = 'longue vie à Python'
print(len(texte))
La console affiche 19 puisque, en comptant les espaces, ce texte comporte 19 caractères.
Pour obtenir un caractère en particulier, indiquez son ordre entre crochets. Attention, Python commence par compter à partir de zéro et les espaces comptent comme des caractères.
Par exemple, vous avez le script suivant…
Texte = 'Salut'
print(Texte[4])
… vous obtenez t puisque S est le numéro 0.
Texte = 'Salut'
print(Texte[-2])
… vous obtenez u qui est la deuxième lettre en partant de la fin.
Texte = 'Salut'
print(Texte[0:4])
… vous obtenez salu c’est-à-dire 4 caractères à partir du numéro 0.
La classe str
Une chaîne de caractères est de classe str (string).
Exemple :
Nous avons vu qu’on ne pouvait pas concaténer du texte avec un nombre. Convertissons-le avec str.
num = 1453
texte = "Chute de Constantinople en"
print(texte + " " + str(num))
Le résultat ne se fait pas attendre :
Chute de Constantinople en 1453