Cours
Le formatage des chaînes de caractères est également connu sous le nom d'interpolation des chaînes de caractères. Il s'agit d'insérer une chaîne ou une variable personnalisée dans un texte prédéfini.
custom_string = "String formatting"
print(f"{custom_string} is a powerful technique")
String formatting is a powerful technique
En tant que scientifique des données, vous l'utiliserez pour insérer un titre dans un graphique, afficher un message ou une erreur, ou transmettre une instruction à une fonction.
Méthodes de formatage
- Formatage positionnel
- Chaînes de caractères formatées
- Méthode des modèles
Méthode String.Format
Nous plaçons des espaces réservés définis par une paire d'accolades dans un texte. Nous appelons la méthode de formatage des points de la chaîne de caractères. Ensuite, nous transmettons la valeur souhaitée à la méthode. La méthode remplace les caractères génériques en utilisant les valeurs dans l'ordre d'apparition de replace by value :
'text{}'.format(value)
Formatage positionnel
Nous définissons une chaîne de caractères et insérons deux espaces réservés. Nous transmettons deux chaînes à la méthode, qui seront utilisées pour obtenir le résultat suivant :
print("Machine learning provides {} the ability to learn {}".format("systems", "automatically"))
Machine learning provides systems the ability to learn automatically
Nous pouvons utiliser des variables à la fois pour la chaîne et pour les valeurs transmises à la méthode. Dans l'exemple de code ci-dessous, nous définissons une chaîne de caractères avec des espaces réservés et deux autres variables. Nous appliquons la méthode de formatage à la chaîne en utilisant les deux variables définies. La méthode lit la chaîne de caractères et remplace les espaces réservés par les valeurs données.
my_string = "{} rely on {} datasets"
method = "Supervised algorithms"
condition = "labeled"
print(my_string.format(method, condition))
Supervised algorithms rely on labeled datasets
Réorganisation des valeurs
Dans l'exemple ci-dessous, vous ajoutez des numéros d'index dans les espaces réservés pour réorganiser les valeurs. Cela affecte l'ordre dans lequel la méthode remplace les espaces réservés.
La méthode les remplace par les valeurs dans l'ordre indiqué.
print("{} has a friend called {} and a sister called {}". format("Betty", "Linda", "Daisy"))
Betty has a friend called Linda and a sister called Daisy
Si nous ajoutons les numéros d'index, l'ordre de remplacement change en conséquence.
print("{2} has a friend called {0} and a sister called {1}". format("Betty", "Linda", "Daisy"))
Daisy has a friend called Betty and a sister called Linda
Nom des caractères de remplacement
Nous pouvons également introduire des arguments de type mot-clé qui sont appelés par leur nom de mot-clé.
Dans l'exemple de code ci-dessous, nous avons inséré des mots-clés dans les espaces réservés. Ensuite, nous appelons ces mots-clés dans la méthode de formatage. Nous déterminons ensuite la variable qui sera transmise pour chacune d'entre elles, ce qui donne le résultat suivant.
tool="Unsupervised algorithms"
goal="patterns"
print("{title} try to find {aim} in the dataset".format(title=tool, aim=goal))
Unsupervised algorithms try to find patterns in the dataset
Examinons ce code ci-dessous. Nous avons défini un dictionnaire dont les clés sont : outil et objectif.
my_methods = {"tool": "Unsupervised algorithms", "goal": "patterns"}
Nous voulons insérer leurs valeurs dans une chaîne de caractères. À l'intérieur des espaces réservés, nous pouvons spécifier la valeur associée à l'outil clé des données variables à l'aide de la notation entre crochets. Data est le dictionnaire spécifié dans la méthode, et tool est la clé présente dans ce dictionnaire.
print('{data[tool]} try to find {data[goal]} in the dataset'.format(data=my_methods))
Nous obtenons ainsi le résultat souhaité, illustré ci-dessous. Attention ! Vous devez spécifier l'index sans utiliser de guillemets.
Unsupervised algorithms try to find patterns in the dataset
Spécification du format
Nous pouvons également spécifier le format à l'intérieur des accolades. Il définit la manière dont les valeurs individuelles sont présentées. Nous utiliserons ici le spécificateur syntaxique index-colonnes. L'un des spécificateurs de format les plus courants est le flotteur, représenté par f. Dans le code, nous spécifions que la valeur transmise avec l'index 0 sera un flottant.
print("Only {0:f}% of the {1} produced worldwide is {2}!". format(0.5155675, "data", "analyzed"))
Only 0.515567% of the data produced worldwide is analyzed!
Nous pourrions également ajouter .2f pour indiquer que nous voulons que le flottant ait deux décimales, comme on peut le voir dans la sortie résultante.
print("Only {0:.2f}% of the {1} produced worldwide is {2}!".format(0.5155675, "data", "analyzed"))
Only 0.52% of the data produced worldwide is analyzed!
Formatage datetime
Python dispose d'un module appelé datetime qui nous permet, par exemple, d'obtenir l'heure et la date d'aujourd'hui.
from datetime import datetime
print(datetime.now())
2020-08-08 06:28:42.715243
Mais comme le format retourné est très particulier, vous pouvez utiliser le spécificateur de format tel que %y-%m-%d-%h-%m pour ajuster le format à quelque chose de plus familier pour nous !
print("Today's date is {:%Y-%m-%d %H:%M}".format(datetime.now()))
Today's date is 2020-08-08 06:29
Exemple interactif
Dans l'exemple suivant, vous allez assigner les sous-chaînes allant du 4ème au 19ème caractère, et du 22ème au 44ème caractère de wikipedia_article aux variables first_pos et second_pos, respectivement. Ajustez les chaînes de caractères pour qu'elles soient en minuscules. Enfin, imprimez les variables first_pos et second_pos.
# Assign the substrings to the variables
first_pos = wikipedia_article[3:19].lower()
second_pos = wikipedia_article[21:44].lower()
Lorsque nous exécutons le code ci-dessus, nous obtenons le résultat suivant :
computer science
artificial intelligence
Pour en savoir plus sur le formatage positionnel, consultez cette vidéo issue de notre cours, Expressions régulières en Python.
Ce contenu est extrait du cours Expressions régulières en Python de DataCamp par Maria Eugenia Inzaugarat.
Consultez notre tutoriel sur les chaînes de caractères en Python.