Comment fonctionne la méthode Python String format() ? 10 exemples
Qu'il s'agisse d'une requête de base de données ou de résultats d'opérations mathématiques, la méthode de format de chaîne Python offre un moyen plus dynamique et attrayant de présenter les résultats à un utilisateur.
Jetons un coup d'œil au fonctionnement de la fonction str.format() en Python. Vous découvrirez également comment vous pouvez utiliser ce format dans vos propres programmes.
Comment fonctionne le format de chaîne Python () ?
La fonction Python str.format() vous permet d'insérer vos résultats n'importe où dans une chaîne.
Cela fonctionne en allouant de l'espace pour vos résultats dans la chaîne à l'aide d'accolades. Il écrit ensuite votre sortie à cette position en utilisant la méthode format() .
Les chaînes en dehors de l'accolade sont ce que vous appelez des textes littéraux.
Comment utiliser la méthode Python String format()
La fonction str.format() accepte une valeur et un spécificateur de format de chaîne facultatif.
Voici à quoi ressemble la syntaxe générale :
str.format(value, format_spec)
Voyons maintenant des exemples plus pratiques d'utilisation de cette méthode de chaîne Python.
1. Insérer une valeur dans une position spécifique
Voici un exemple de base sur la façon d'insérer une valeur dans une chaîne à l'aide de la méthode str.format() :
Cost = 45
formattedMethod = "This good costs {} dollars only"
print(formattedMethod.format(Cost))
Output: This good costs 45 dollars only
Le code ci-dessus est le même que :
formattedMethod = "This good costs {} dollars only"
print(formattedMethod.format(45))
Output: This good costs 45 dollars only
2. Insérer plusieurs sorties dans une chaîne
Vous pouvez également insérer plusieurs résultats dans une chaîne. Voici comment:
y = 7*8
f = 5+5
g = 0
a = "The value of y is {}, while f is {}. Nobody can see {}".format(y, f, g)
print(a)
Output: The value of y is 56, while f is 10. Nobody can see 0
3. Utilisez des accolades d'échappement pour placer les sorties dans des accolades dédiées
Si vous devez placer l'un des résultats dans une accolade, c'est facile. Il vous suffit d'introduire deux accolades d'échappement supplémentaires.
Par exemple, disons que vous voulez y dans une accolade dédiée :
a = "The value of y is {{{}}}, while f is {}. Nobody can see {}".format(y, f, g)
print(a)
Output: The value of y is {56}, while f is 10. Nobody can see 0
4. Valeurs de sortie à partir d'une liste
Vous pouvez sélectionner des valeurs spécifiques dans une liste et les insérer dans une chaîne :
myList = [10, 2, 4, 6]
print(("The first is {} and the third is {}").format(myList[0], myList[2]))
Output: The first is 10 and the third is 4
Pour éviter les répétitions dans la parenthèse .format() , vous pouvez définir le spécificateur de format pour qu'il pointe vers une seule variable à la place.
Voici comment procéder :
myList = [10, 2, 4, 6]
print(("The first is {yourList[0]} and the third is {yourList[2]}").format(yourList = myList))
Output: The first is 10 and the third is 4
L'exemple ci-dessus s'applique également à d'autres exemples que nous avons traités plus tôt. Vous pouvez donc jouer avec eux en utilisant cette astuce.
5. Insérer des valeurs à partir d'un dictionnaire
De même, comme vous l'avez fait dans la section précédente, vous pouvez utiliser la méthode str.format() pour insérer une valeur de dictionnaire dans une chaîne :
myDiction = {"Ten":10, "Two":2, "Four":4, "Six":6}
print(("The first is {} and the third is {}").format(myDiction["Ten"], myDiction["Four"]))
Output: The first is 10 and the third is 4
Et si vous voulez utiliser l'astuce de la section précédente :
myDiction = {"Ten":10, "Two":2, "Four":4, "Six":6}
print(("The first is {Ten} and the third is {Four}").format(**myDiction))
Output: The first is 10 and the third is 4
Vous pouvez également écrire le code ci-dessus sous la forme :
print(("The first is {d[Ten]} and the third is {d[Four]}").format(d=myDiction))
Output: The first is 10 and the third is 4
6. Insérer la sortie d'une fonction dans une chaîne
Si vous souhaitez afficher la sortie d'une fonction dans une chaîne :
def difNums(a, b):
if a > b:
return a - b
else:
return return "You can't substract {} from {} using this function".format(a, b)
print(("Hey there: {}").format(difNums(2, 6)))
Output: Hey there: You can't substract 2 from 6 using this function
Utilisation des spécificateurs de format de chaîne Python
Le spécificateur de format vous permet de choisir la manière dont votre format apparaît. Comme mentionné précédemment, il s'agit d'un paramètre facultatif fourni avec str.format() .
En utilisant cette option, vous pouvez aligner votre sortie, couper de longues chaînes, grouper des sorties ou arrondir un nombre entier à un nombre spécifique de chiffres significatifs, et même plus.
Vous écrirez souvent les spécificateurs de format à l'intérieur des accolades. Mais vous pouvez également les indiquer explicitement à l'intérieur de la parenthèse .format() .
Allons de l'avant et voyons quelques-uns de ses cas d'utilisation.
7. Aligner la sortie de chaîne
Vous pouvez utiliser le signe plus grand ( > ) pour aligner une sortie de chaîne à droite :
print("Hello {:>15}".format(12734589))
Output: Hello 12734589
Vous pouvez également aligner votre texte au centre si vous le souhaitez :
print("Hello {:^15}".format(12734589))
Output: Hello 12734589
Formatons davantage la sortie ci-dessus. Par exemple, vous pouvez inclure des traits de soulignement pour voir le remplissage de chaque côté de votre sortie de chaîne :
print("Hello {:_^15}".format(12734589))
Output: Hello ___12734589____
Mais comme mentionné précédemment, vous pouvez indiquer explicitement le spécificateur de format en tant que paramètre dans str.format() .
Ainsi, le code précédent ressemble à ceci dans ce cas :
print("Hello {:{g}}".format(12734589, g = "_^15"))
Output: Hello ___12734589____
N'hésitez pas à réécrire les autres exemples en utilisant l'option ci-dessus.
8. Formater les sorties vers un nombre spécifique de chiffres significatifs
Vous pouvez également vouloir renvoyer un nombre particulier de chiffres significatifs pour un calcul à l'aide de la méthode .format() .
L'exemple de code ci-dessous, par exemple, arrondit le résultat de l'opération mathématique à un nombre décimal significatif :
calcprofitPerc = ((45 - 20)/45)*100
formattedOutput = "Our profit on this is {profit: .1f}%"
print(formattedOutput.format(profit = calcprofitPerc))
Output: Our profit on this is 55.6%
9. Tronquer les longues chaînes
Bien que tronquer un texte puisse sembler peu pratique, vous ne pouvez pas dire où vous pourriez en avoir besoin.
Voici comment couper une partie de votre sortie de chaîne à l'aide de la fonction str.format() :
print(("Truncate this to the first 3 alphabets: {:.3}").format("idowuomisola"))
Output: Truncate this to the first 3 alphabets: ido
10. Séparer un groupe de nombres à l'aide d'un critère
Vous pouvez séparer un groupe de nombres à l'aide d'un trait de soulignement ou d'une virgule :
print("Separated by underscore: {:{g}}".format(12734589, g="_"))
print("Separated by comma: {:{g}}".format(12734589, g=","))
Output:
Separated by underscore: 12_734_589
Separated by comma: 12,734,589
De plus, vous pouvez spécifier le groupe de numéros que vous souhaitez traiter à l'aide de sa clé :
print("First numbers by underscore: {0:{g}}".format(12734589, 123674, 662772, g="_"))
print("Third numbers by comma: {2:{g}}".format(12734589, 123674, 662772, g=","))
Output:
First numbers by underscore: 12_734_589
Third numbers by comma: 662,772
Présentez correctement les sorties avec la méthode Python String format()
L'une des façons dont vous pouvez faire ressortir votre programme est la façon dont vous présentez les résultats et les requêtes. Sans aucun doute, la méthode de format de chaîne Python offre un moyen plus propre de générer des résultats. Contrairement à la méthode modulo précédente des anciennes versions de Python, le nouveau format de chaîne introduit dans Python 3 est plus lisible et convivial.