Nous avons déjà vu à quel point Python peut être puissant lorsqu'on manipule des chaînes de caractères. Nous pouvons rechercher dans la chaîne avec le mot-clé in, extraire une partie du texte en la découpant (slicing), obtenir sa longueur, la formater avec les f-strings, etc. Et ce n'est en réalité que la pointe de l'iceberg.
En Python, il existe de nombreuses fonctions utilitaires pour effectuer des manipulations de texte plus complexes. Il y a plus de 40 utilitaires qui peuvent être utilisés dans différents scénarios. La liste complète de ces méthodes peut être trouvée sur la page officielle de Python : méthodes de chaînes. La bonne nouvelle, c'est qu'il n'est pas nécessaire de toutes les mémoriser. Presque toutes ont un nom très intuitif, et il est facile de trouver ce dont on a besoin avec une simple recherche Google. Nous allons couvrir certaines fonctions très populaires qui sont utiles de temps en temps et sont fréquemment utilisées lors du travail avec des chaînes de caractères.
# .upper() met toutes les lettres en majuscules
s = 'What happened to Anna?'
up = s.upper()
print('Hi 123 this is Sally!'.upper()) # HI 123 THIS IS SALLY!
print(s) # What happened to Anna?
print(s.upper()) # WHAT HAPPENED TO ANNA?
print(up) # WHAT HAPPENED TO ANNA?
# .lower() met toutes les lettres en minuscules
s = 'What happened to Anna?'
low = s.lower()
print('Hi 123 this is Sally!'.lower()) # hi 123 this is sally!
print(s) # What happened to Anna?
print(s.lower()) # what happened to anna?
print(low) # what happened to anna?
# .title() met une majuscule au début de chaque mot (style titre)
s = 'What happened to Anna?'
title = s.title()
print('Hi 123 this is Sally!'.title()) # Hi 123 This Is Sally!
print(s) # What happened to Anna?
print(s.title()) # What Happened To Anna?
print(title) # What Happened To Anna?
# .capitalize() met une majuscule au début de la phrase
s = 'What happened to Anna?'
capital = s.capitalize()
print('Hi 123 this is Sally!'.capitalize()) # Hi 123 this is sally!
print(s) # What happened to Anna?
print(s.capitalize()) # What happened to anna?
print(capital) # What happened to anna?
# .swapcase() transforme les minuscules en majuscules et vice versa
s = 'What happened to Anna?'
swapped = s.swapcase()
print('Hi 123 this is Sally!'.swapcase()) # hI 123 THIS IS sALLY!
print(s) # What happened to Anna?
print(s.swapcase()) # wHAT HAPPENED TO aNNA?
print(swapped) # wHAT HAPPENED TO aNNA?
Il est important de noter que les méthodes de chaînes ne modifient pas la variable originale. Elles créent une nouvelle valeur et la renvoient. La valeur originale reste la même. Donc, lorsqu'on appelle a.lower(), la valeur de a ne change pas. Elle reste la même, mais lower() renvoie une nouvelle valeur qui contient la version en minuscules de a.
Défi
On vous donne une commande et un morceau de texte. Votre tâche est d'appliquer cette commande au texte.
La commande peut être l'une des suivantes : upper, lower, capitalize, title, swap.
La commande peut aussi être écrite en majuscules ou minuscules. La gestion de la commande ne doit pas être sensible à la casse.
La première ligne du programme contient la commande. La deuxième ligne contient le texte qui doit être modifié.
La sortie doit être une seule ligne - le texte transformé.