Explication détaillée de str.format() dans Python_python

不言
Libérer: 2018-04-04 17:27:14
original
1745 Les gens l'ont consulté

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, nous pouvons utiliser + pour concaténer 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, mais rendra également le code difficile à maintenir. À ce stade, cette méthode devient insuffisante.

Par exemple, nous souhaitons imprimer un tel enregistrement :

Utilisateur : John a terminé l'action : paiement à l'heure : 13:30:00

Si vous utilisez le signe plus L'implémentation se présentera sous la forme suivante :

print "User:" + user_name + " has completed Action:" + \ 
      action_name + " at Time:" + current_time
Copier après la connexion

Si nous revenons en arrière et lisons ce code dans le futur, ce sera difficile pour nous de voir intuitivement son format de sortie, et il est relativement difficile à modifier.

Nous pouvons utiliser % à la place :

print "User:%s has completed Action:%s at Time:%s" % \ 
    (user_name, action_name, current_time)
Copier après la connexion

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)
Copier après la connexion

str.format peut être utilisé dans des scénarios simples et est également capable de remplacer des chaînes complexes 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 les 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. Utiliser l'index positionnel

Les deux façons d'écrire suivantes sont équivalentes :

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

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

La chaîne cible peut être écrite à l'intérieur du bouclé accolades L'index peut également être omis. 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")
Copier après la connexion

L'avantage d'utiliser l'index de mots clés est que nous n'avons pas besoin de nous soucier de la position du Les paramètres et le résultat final de la chaîne peuvent être vus 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. La maîtrise de cette méthode peut jeter une base solide pour le futur traitement des chaînes et gagner beaucoup de temps.

3.1. Accéder aux attributs ou éléments des paramètres

Lorsque nous utilisons str.format pour formater une chaîne, nous passons 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. Paramètre conversion de sortie La sortie de chaîne des paramètres

est implémentée par sa propre méthode __format__ par défaut. Autrement dit, Python utilise la sortie __format__ 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 l'indicateur de conversion :

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

#call repr() on argument
"We can get info from {name!r}."
Copier après la connexion

4. forme générale str .format

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

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

Comme vous pouvez le voir dans 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 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 et 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.

< Aligné à gauche (option par défaut)
> Aligné à droite
= Uniquement valable pour les nombres ; placez des caractères de remplissage entre les symboles et les chiffres, par exemple +0001234
^ Aligné au centre
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'un espace, et les nombres négatifs sont précédés d'un signe
'#'
Valable uniquement pour les entiers

Ajoutez automatiquement les 0b, 0o, 0x correspondants avant les valeurs binaires, octales et 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 notation scientifique (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éparez 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 :

Explication détaillée de php fonction d'interception intercept_str

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!