Le texte
Informatique — Python, chapitre 2
Le chapitre précédent n’a manipulé que des nombres. Or un travail empirique manipule aussi des noms de variables, des libellés de modalités, des chemins de fichiers et des messages à afficher. Python traite le texte avec une richesse peu commune, et c’est l’un de ses avantages nets sur les langages purement numériques.
2.1 Créer une chaîne
2.1.1 Guillemets simples ou doubles
Disposer des deux permet d’inclure l’un dans l’autre sans effort.
2.1.2 Texte sur plusieurs lignes
Le triple guillemet conserve les retours à la ligne tels qu’ils sont écrits. Il sert aussi aux docstrings, ces descriptions de fonctions que présente le chapitre 6.
2.1.3 Les caractères spéciaux
"C:\Users\notes" pose un problème : \n y est interprété comme un retour à la ligne, et \U déclenche une erreur.
Deux solutions : doubler les barres ("C:\\Users\\notes"), ou préfixer la chaîne d’un r — pour raw — qui désactive toute interprétation : r"C:\Users\notes".
La seconde est plus lisible, et c’est celle qu’emploient les bibliothèques de lecture de fichiers.
2.2 Assembler et répéter
Avec du texte, + ne calcule pas : il concatène. Et * répète, ce qui produit commodément des séparateurs.
age = 25
print("age : " + age) # TypeErrorPython refuse. Il faut convertir : "age : " + str(age). Mais la section suivante montre une écriture bien meilleure.
2.3 Les f-strings
2.3.1 Le principe
C’est l’écriture moderne, à privilégier systématiquement. Un f devant les guillemets, et toute expression entre accolades est évaluée.
Aucune conversion, aucun +, et l’on lit la phrase telle qu’elle s’affichera.
2.3.2 Le formatage des nombres
C’est ici que les f-strings deviennent indispensables pour présenter des résultats.
| Code | Effet |
|---|---|
:.2f |
deux décimales fixes |
:,.1f |
séparateur de milliers |
:.1% |
multiplie par 100 et ajoute % |
:>10, :<10, :^10 |
aligné à droite, à gauche, centré |
:.3e |
notation scientifique |
x = 42
print(f"{x = }") # affiche : x = 42Le signe égal dans les accolades affiche le nom et la valeur. Pour suivre l’évolution d’une variable dans un calcul, c’est plus rapide que d’écrire les deux à la main.
2.4 Découper et extraire
2.4.1 Par position
Une chaîne se comporte comme une suite de caractères, numérotée à partir de zéro.
Python numérote à partir de 0. R et MATLAB numérotent à partir de 1.
En revanche, l’indice négatif de Python compte depuis la fin : mot[-1] est le dernier caractère. En R, v[-1] signifierait « tout sauf le premier » — un sens complètement différent.
Si vous pratiquez les deux langages, ces deux règles sont la première source d’erreurs.
2.4.2 Les tranches
mot[0:4] renvoie quatre caractères : les indices 0, 1, 2 et 3. Le 4 n’y est pas.
Cela paraît arbitraire, mais rend deux choses naturelles : mot[:4] + mot[4:] reconstitue le mot entier sans chevauchement ni trou, et fin - debut donne directement le nombre de caractères extraits.
Cette convention vaut pour les listes du chapitre suivant, et pour range au chapitre 4.
2.5 Transformer
2.5.1 Les méthodes
Une méthode est une fonction attachée à un objet : on l’appelle avec un point.
Les méthodes s’enchaînent de gauche à droite : v.strip().lower() nettoie puis met en minuscules.
v = "tanger"
v.upper()
print(v) # affiche toujours 'tanger'Les méthodes renvoient une nouvelle chaîne sans toucher à l’originale. Pour conserver le résultat, il faut le réaffecter : v = v.upper().
C’est l’erreur la plus fréquente du chapitre. Les listes, elles, se modifient sur place — le chapitre suivant y revient.
2.5.2 Découper et rassembler
split découpe une chaîne en liste, join rassemble une liste en chaîne. Ces deux méthodes suffisent à lire un fichier CSV à la main — c’est ce que fera le chapitre 7.
Sans argument, split découpe sur les espaces, ce qui est commode pour compter des mots.
2.5.3 Chercher et vérifier
L’opérateur in est le plus lisible pour tester une appartenance. Il fonctionne aussi sur les listes du chapitre suivant.
2.6 Un cas concret : nettoyer des libellés
Trois méthodes enchaînées transforment des en-têtes de tableur en noms de variables exploitables. C’est exactement le genre de tâche pour laquelle Python est meilleur que la plupart des logiciels statistiques.
À vous
À partir de la ligne "Rabat;62.15;Centre;8.4", extrayez le nom de la ville en majuscules, le PIB arrondi à une décimale, et affichez le tout dans une phrase formatée.
champs = ligne.split(";")
ville = champs[0].upper()
pib = float(champs[1])
region = champs[2]
chomage = float(champs[3])
print(f"{ville} ({region}) : PIB {pib:.1f} Md, chomage {chomage:.1f} %")Notez le float(...) : les morceaux issus d’un split sont toujours du texte, même quand ils ressemblent à des nombres. Sans conversion, le formatage .1f échouerait.
Ce qu’il faut retenir
| Écriture | Effet |
|---|---|
"...", '...', """...""" |
créer une chaîne, sur une ou plusieurs lignes |
r"C:\dossier" |
chaîne brute — pour les chemins Windows |
+, * |
coller, répéter |
f"{x} et {y:.2f}" |
f-string : l’écriture à privilégier |
:.2f, :,.1f, :.1%, :>10 |
formater un nombre |
mot[0], mot[-1] |
premier, dernier caractère — on compte depuis 0 |
mot[2:5] |
tranche — la borne de fin est exclue |
strip, lower, upper, replace |
nettoyer et transformer |
split, join |
découper en liste, rassembler en chaîne |
in, startswith, find, count |
chercher et vérifier |
v = v.upper() |
une chaîne ne se modifie jamais sur place |
Le chapitre suivant présente la structure la plus employée du langage : la liste, qui rassemble plusieurs valeurs sous un seul nom.