Différentes manières de formater les chaînes en Python : les 3 meilleures méthodes
Publié: 2021-02-23Le formatage des chaînes est une fonctionnalité essentielle dans les langages de programmation pour formater ou insérer des valeurs et des positions spécifiées par l'utilisateur dans les chaînes. Le langage C avait une façon de faire cela que vous connaissez peut-être si vous avez une certaine expérience du langage C. Python, cependant, ne prend pas en charge 1, pas 2, mais 3 façons différentes de formater les chaînes. Chaque méthode a ses avantages et ses inconvénients que nous verrons dans ce didacticiel. Nous verrons également laquelle des 3 méthodes est la plus utilisée et la plus efficace.
Apprenez des cours de science des données en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.
À la fin de ce didacticiel, vous saurez ce qui suit :
- Différentes façons de formater les chaînes
- Leur utilisation avec des exemples
- Quel chemin est le plus préféré
Table des matières
Différentes façons de formater les chaînes
Python a reçu plusieurs mises à jour pour améliorer le formatage des chaînes. Passons en revue chacun d'eux un par un.
Méthode 1 : formatage de chaîne de style C
Python inclut l'ancienne méthode de formatage des chaînes en utilisant des caractères spéciaux pour chaque type de données. Cette bonne vieille méthode de formatage de chaînes a été adoptée à partir du langage C et est toujours très efficace. Un spécificateur de format de chaîne "%" suivi d'un caractère dédié pour chaque type de données est utilisé pour formater les chaînes.
Prenons un petit exemple pour comprendre ceci :
nombre = 8 nom = "homme rose" print("Le nom est %s et le numéro est %d" %( nom, num)) |
#Sortir >> "Le nom est pinkman et le numéro est 8" |
Comme vous le voyez, le spécificateur de format %s a été utilisé pour formater le nom de la chaîne et %d a été utilisé pour formater le nombre entier. De même, il existe également un spécificateur de format pour un flottant. Vérifions cela aussi.
nombre = 4,32 lis = [ 1 , 3 , 5 ] print( "liste est %s et float est %f" %(lis, num)) |
#Sortir >> la liste est [ 1 , 3 , 5 ] et le flotteur est 4.320000 |
Dans l'exemple ci-dessus, j'utilise le spécificateur de format %f pour formater la valeur flottante. Deux choses à remarquer ici. Premièrement, la valeur flottante est imprimée sous la forme 4,320000 et pas seulement 4,32. Pourquoi donc? En effet, Python utilise par défaut une précision de 6 décimales pour les flottants. Deuxièmement, j'ai imprimé une liste en utilisant le spécificateur de format de chaîne. Cela ne signifie pas que le spécificateur de format %s peut accepter n'importe quel type de données. Il le convertit simplement en chaîne et l'imprime. Ainsi, la liste qui est imprimée est essentiellement une chaîne et non une liste.
D'accord, alors comment spécifier la précision requise en nombre de décimales ?
print("list est %s et float avec une précision de 2 points est %.2f" %(lis, num)) |
#Sortir >> la liste est [ 1 , 3 , 5 ] et le flotteur est 4.32 |
Un autre point à noter ici est que nous devons donner les variables dans l'ordre dans lequel elles sont utilisées dans la chaîne. Si l'ordre est modifié, la sortie est réglée pour être affectée en conséquence. Une alternative pour ne pas nous obliger à donner les variables dans le bon ordre à chaque fois est d'utiliser le formatage de chaîne d'une manière légèrement différente.
print("liste est %(a)s et float est %(b)f" %{"b": num, "a": lis}) |
#Sortir >> la liste est [ 1 , 3 , 5 ] et le flotteur est 4.320000 |
Et comme vous le voyez, c'est très lourd à écrire.
Donc, juste pour résumer, les 3 spécificateurs de format les plus fréquemment utilisés sont :
- %s pour les chaînes
- %d pour les entiers
- %.<précision décimale>f pour les flottants
Méthode 2 : Nouvelle mise en forme de chaîne de style
Python 3 a introduit une meilleure façon de formater les chaînes en utilisant une méthode format() sur les chaînes. Un espace réservé est utilisé en plaçant des accolades et la méthode de format contient les variables qui doivent être placées à ces positions dans la chaîne. Prenons un petit exemple pour comprendre cela.
nom = "skyler" print("Bonjour, je m'appelle {}".format(nom)) |
#Sortir >> Salut, je m'appelle skyler |
C'est bien mieux que le formatage à l'ancienne que nous avons vu ci-dessus. Les accolades agissent comme un espace réservé pour le nom de la variable qui contient une chaîne. Notez qu'avec la méthode de format, nous n'avons pas besoin de spécifier le type de données de la variable comme nous l'avons fait dans le formatage à l'ancienne.
Un exemple avec des chiffres aussi :
nombre = 3 entier = 4,34 nom = "jessy" print( "Bonjour, mon nom est {}, le numéro est {} et le float est {}" .format(name, num, int)) |
#Sortir >> Salut, je m'appelle jessy , le numéro est 3 et le flotteur est 4.34 |
Soigné! Comme vous le voyez, il faut que les variables soient transmises à la méthode format dans l'ordre dans lequel elles ont été utilisées dans la chaîne. Une autre façon d'utiliser la méthode format en ne nous obligeant pas à passer toutes les variables dans le bon ordre :
print("Bonjour, mon nom est {nom}, le nombre est {num} et le flottant est {int}".format(int=int, num=num , nom=nom)) |
#Sortir >> Salut, je m'appelle jessy , le numéro est 3 et le flotteur est 4.34 |
Dans l'exemple ci-dessus, nous voyons que lorsque les variables sont explicitement mentionnées dans les espaces réservés, il n'est plus nécessaire de les transmettre à la méthode format dans le bon ordre.
Nous pouvons également passer la position de la variable dans les espaces réservés pour mieux les suivre.
print("Bonjour, mon nom est {0}, le numéro est {1} et le flottant est {2}".format(nom, num, int)) |
#Sortir >> Salut, je m'appelle jessy , le numéro est 3 et le flotteur est 4.34 |
Méthode 3 : Utilisation de F-Strings
Introduites dans Python 3.6, les f-strings sont le moyen le plus simple et le plus efficace de formater les chaînes. Ceux-ci sont également appelés littéraux de chaîne formatés. Ils utilisent le littéral f au début de la chaîne pour indiquer à python de la traiter comme une chaîne formatée. Les espaces réservés contiennent les variables réelles qui doivent être placées dans cette position.
Jetons un coup d'oeil à un exemple.
nom = "heisenberg" bill = 100.43print(f"Le nom est {nom} et la facture est {bill}") |
#Sortir >> Le nom est heisenberg et la facture est de 100,43 |
C'était assez facile. De plus, nous pouvons également mettre des expressions directement à la place des variables.
un = 5 b = 8 print( f"La somme est {a+b} " ) |
#Sortir >> La somme est 13 |
Nous pouvons également appeler les fonctions directement et obtenir leur sortie dans les littéraux de chaîne.
print( f"Le nom est {name.upper()} " ) |
#Sortir >> Le nom est HEISENBERG |
De plus, nous pouvons également utiliser les chaînes f pour renvoyer directement la valeur des fonctions.
def combinateur (nom, âge, argent): return f"{name} a l'âge de {age} et a un salaire de {money}" |
Saul Goodman a 45 ans et a un salaire de 2000000 |
Comme nous le voyons, lorsque nous passons les fonctions directement aux espaces réservés, il appelle les fonctions et place directement les sorties entre les accolades. De toute évidence, cette méthode de formatage de chaîne est la plus efficace et la plus facile à écrire.
Paiement : questions et réponses de l'entretien Python
Avant que tu partes
Le formatage des chaînes est une tâche régulière et la façon dont Python a introduit la méthode format et les chaînes f le rend très facile pour les personnes travaillant avec Python. Les f-strings sont le moyen le plus utilisé et préféré de travailler avec le formatage de chaîne car il le rend très facile à écrire et à maintenir. De plus, cela rend également le code plus pythonique ! Sous le capot, les chaînes f utilisent le protocole __format__. Le littéral f n'est que du sucre syntaxique que python offre à ses utilisateurs pour nous faciliter l'écriture du formatage des chaînes.
Si vous êtes curieux d'en savoir plus sur la science des données, consultez le programme Executive PG en science des données de IIIT-B & upGrad qui est créé pour les professionnels en activité et propose plus de 10 études de cas et projets, des ateliers pratiques, un mentorat avec des experts de l'industrie, 1 -on-1 avec des mentors de l'industrie, plus de 400 heures d'apprentissage et d'aide à l'emploi avec les meilleures entreprises.
1. La méthode format() de chaîne intégrée de Python transforme une chaîne fournie en une sortie plus utile. La fonction format() en Python3 est l'une des méthodes de formatage de chaîne qui permet de multiples substitutions ainsi que le formatage des valeurs. La méthode format() utilise la mise en forme positionnelle pour concaténer des éléments dans une chaîne. Ajoutez un argument supplémentaire à votre méthode d'impression dans Python 3 pour indiquer à l'ordinateur que vous ne voulez pas que la chaîne suivante soit sur une nouvelle ligne. Considérez le scénario suivant. 1. Ce sont des objets de chaîne si nous acquérons une valeur flottante via une entrée utilisateur via le terminal ainsi qu'en la lisant à partir d'un fichier. Par conséquent, nous devons les convertir explicitement en float afin d'effectuer les opérations nécessaires telles que l'addition, la multiplication, etc.Quelles méthodes de formatage en Python 3 permettent plusieurs substitutions et formatage de valeur ?
2. La chaîne peut être formatée à l'aide de nombreuses paires d'accolades. Si un autre remplacement de variable est requis dans une longue chaîne, le deuxième ensemble d'accolades peut être ajouté et la deuxième valeur transmise à la procédure.
3. La fonction format() en Python accepte n'importe quel nombre de paramètres. Cependant, il est principalement séparé en deux types de paramètres suivants.
une. Les paramètres positionnels sont une liste de paramètres qui peuvent être récupérés en plaçant l'index du paramètre entre accolades (index).
b. Paramètres de mot-clé - Il s'agit d'une liste de paramètres clé=valeur accessibles à l'aide de la clé du paramètre à l'intérieur d'accolades.
4. La méthode format() renvoie une chaîne qui a été formatée. La fonction format() lit le type d'arguments qui lui sont fournis et les formate en fonction des codes de format de la chaîne. Comment imprimez-vous sans nouvelle ligne en Python 3 ?
print('Bienvenue !', fin = ')
Dans ce cas, toute autre fonction d'impression apparaîtra sur la même ligne. Pouvons-nous convertir une chaîne en flottant en Python ?
2. La méthode float() en Python peut être utilisée pour convertir une chaîne en flottant. C'est une fonction intégrée pour convertir un nombre à virgule flottante en un objet. En interne, la fonction float() appelle la fonction __float__() de l'objet fourni.