Maison  >  Article  >  développement back-end  >  Explication détaillée de la syntaxe de base et de l'utilisation avancée de str.format()

Explication détaillée de la syntaxe de base et de l'utilisation avancée de str.format()

Y2J
Y2Joriginal
2017-05-15 10:48:434507parcourir

Cet article vous présente principalement la syntaxe de base et l'utilisation avancée de str.format() dans la programmation python. Il est très détaillé et est accompagné d'exemples. J'espère que vous l'aimerez

1. . L'introduction de str.format

En Python, on peut utiliser + pour connecter des chaînes, ce qui fonctionne bien dans les cas simples. Mais lorsque nous devons effectuer une concaténation de chaînes complexe, si nous utilisons toujours + pour la compléter, cela rendra non seulement le code obscur et difficile à comprendre, mais rendra également le code difficile à maintenir dans ce cas. , cette méthode Il semble qu'il soit incapable de faire ce qu'il veut.

Par exemple, nous souhaitons imprimer un enregistrement comme celui-ci :

Utilisateur : John a terminé Action : paiement à Heure : 13 : 30 :00

Si vous utilisez le signe plus pour l'implémenter, il se présentera sous la forme suivante :

print "User:" + user_name + " has completed Action:" + \ 
      action_name + " at Time:" + current_time

Si vous revenez en arrière et lisez ce code à l'avenir, il nous sera difficile de voir intuitivement son format de sortie, et il est relativement difficile à modifier.

On peut utiliser % à la place :

print "User:%s has completed Action:%s at Time:%s" % \ 
    (user_name, action_name, current_time)

Cette fois, le code devient beaucoup plus clair et concis.

Cependant, Python nous propose une autre méthode d'implémentation simple et élégante, qui est également la méthode la plus officiellement recommandée : utilisez str.format() pour formater les chaînes :

print "User:{} has completed Action:{} at Time:{}".format( 
    user_name, action_name, current_time)

str.format peut être utilisé dans des scénarios simples et peut également effectuer un remplacement de chaînes complexe sans opérations fastidieuses de concaténation de chaînes. Les types intégrés str et unicode de Python prennent tous deux en charge l'utilisation de str.format() pour formater des chaînes.

Nous discuterons ensuite en détail de l’utilisation spécifique de str.format().

2. Syntaxe de base de str.format

La chaîne de format utilise des accolades {} pour entourer le champ de remplacement, qui est la chaîne à remplacer. . Les caractères non entourés d’accolades apparaîtront intacts dans le résultat.

2.1. Utilisation de l'index positionnel

Les deux manières d'écrire suivantes sont équivalentes :

"Bonjour, {} et {}!".format ("John", "Mary")

"Bonjour, {0} et {1}!".format("John", "Mary")

Entre accolades Vous pouvez écrire l'index de la chaîne cible ou l'omettre. En cas d'omission, le remplacement est effectué dans l'ordre des chaînes cibles entourées de crochets de format.

2.2. Utilisation de l'index de mots-clés

En plus de spécifier la chaîne cible par position, nous pouvons également la spécifier par mot-clé.

Par exemple :

"Hello, {boy} and {girl}!".format(boy="John", girl="Mary")

L'avantage d'utiliser l'index de mots-clés est que nous n'avons pas besoin de nous soucier de la position des paramètres, et le résultat final de la chaîne peut être vu en un coup d'œil. Lors de la future maintenance du code, nous pourrons modifier rapidement les paramètres correspondants sans avoir à rechercher les paramètres correspondants un par un dans la chaîne.

Remarque : Si la chaîne elle-même contient des accolades, elles doivent être échappées en les répétant deux fois. Par exemple, si la chaîne elle-même contient {, pour faire savoir à Python qu'il s'agit d'un caractère normal et non des accolades utilisées pour entourer un champ de remplacement, nous la réécrivons simplement sous la forme {{.

3. La syntaxe avancée str.format

str.format est très puissante et suffisamment puissante pour compléter la sortie formatée rencontrée dans le travail quotidien . Maîtriser cette méthode peut jeter une base solide pour le futur traitement des chaînes et gagner beaucoup de temps.

3.1. Accéder à l'attribut ou à l'élément du paramètre

Lorsque nous utilisons str.format pour formater une chaîne, nous transmettons généralement la chaîne cible en tant que paramètre à la méthode de format . En fait, on peut également accéder à un attribut ou un élément du paramètre dans la chaîne de format :

"Ma voiture est {0.color}.".format(black_car)
"Le premier élève est {student[0]}.".format(student=stu_list)
"John a {d[john]} ans.".format(d=age_dict)

3.2. Conversion de la sortie des paramètres

La sortie de chaîne des paramètres est implémentée par sa propre méthode de format par défaut. Autrement dit, Python utilise le format de sortie du paramètre à la place du champ de remplacement. Si nous voulons appeler str() ou repr() pour convertir des paramètres, nous pouvons le faire en ajoutant un indicateur de conversion :

# call str() on argument
"It's a {0!s}."

#call repr() on argument
"We can get info from {name!r}."

4. formulaire général str.format

La forme générale de la chaîne de format est la suivante :

"... {field_name!conversion:format_spec}..."


Comme vous Comme le montre le code ci-dessus, la chaîne de format peut être divisée en trois parties : field_name, conversion et format_spec, qui correspondent respectivement au nom du champ de remplacement (index), à l'indicateur de conversion et à la description du format. Parmi eux, le nom du champ est obligatoire, tandis que les deux derniers sont facultatifs. L'indicateur de conversion suit le point d'exclamation et la description du format suit les deux points.

Comme mentionné précédemment, le nom du champ peut être soit un index de position, soit un index de mots-clés. Les noms de champs peuvent être suivis de points pour accéder aux attributs ou de crochets pour accéder aux éléments.

Ici, nous nous concentrons sur la description du format (format_spec).

La description du format contient 6 options, à savoir remplir, aligner, signer, largeur, précision, type. Leur relation de position est la suivante :

[[fill]align][sign][#][0][width][,][.precision][type]
fill
peut être n'importe quel caractère, la valeur par défaut est l'espace.

align
n'est valide que lorsqu'une largeur minimale est spécifiée.

399389dcbfcb88f485135f65e04aeca5 Aligné à droite
= Uniquement valable pour les nombres ; placez des caractères de remplissage entre les symboles et les nombres, par exemple +0001234
^ Centre- aligné
signe
Valable uniquement pour les nombres

+ Tous les nombres sont signés
- Seuls les nombres négatifs sont signés (option par défaut)
C'est-à-dire que les nombres positifs sont précédés d'espaces ; , et les nombres négatifs sont précédés d'espaces. Signé
'#'
n'est valable que pour entier

ajoute automatiquement les 0b, 0o et 0x correspondants avant binaire, octal, et valeurs hexadécimales.

','
Ajoute automatiquement un séparateur , entre tous les trois nombres.

largeur
Nombre décimal, définissant la largeur minimale. S'il n'est pas spécifié, il est déterminé par la largeur du contenu.

Si l'alignement n'est pas spécifié, vous pouvez ajouter un 0 devant la largeur pour remplir automatiquement 0, ce qui équivaut à définir le remplissage sur 0 et à aligner sur =. La

précision
est utilisée pour déterminer la précision des nombres à virgule flottante, ou la longueur maximale d'une chaîne. Non disponible pour les valeurs entières.

type
détermine le type de paramètre, la valeur par défaut est s, qui est une chaîne.

Type de sortie entier :

b : Sortie au format binaire
c : Convertir l'entier en caractère Unicode correspondant
d : Sortie en décimal (option par défaut)
o : Sortie en octal
x : Sortie en minuscules hexadécimales
Nombre

Type de sortie de nombre à virgule flottante décimale :

e : sortie d'exposant utilisant la notation scientifique ; , utilisez e pour représenter la partie exposant, la précision par défaut est 6

E : et e est le même, mais utilise un E majuscule pour représenter la partie exposant
f : affiche la valeur sous forme de virgule fixe, le la précision par défaut est 6
F : identique à f
g : format général ; pour une précision donnée p > = 1, prenez les chiffres significatifs du chiffre p de la valeur et affichez-les en virgule fixe ou scientifique notation (option par défaut)
G : format général ; identique à g, utilisez E pour représenter la partie exposant lorsque la valeur est trop grande
n : Identique à g, mais utilise le délimiteur de l'environnement actuel pour séparer chaque nombre à 3 chiffres
% : marque de pourcentage ; utilisez le formulaire de pourcentage pour afficher la valeur et définissez la marque f

[Recommandations associées]

1. >Recommandation spéciale

 : Téléchargement de la version V0.1 de "php Programmer Toolbox" 2 Tutoriel vidéo gratuit Python

3. Tutoriel vidéo orienté objet Python

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn