Fonction de formatage format de Python

Python 字符串Chaîne Python


À partir de Python 2.6, une nouvelle fonction de formatage de chaînes a été ajoutéestr.format(), qui améliore les fonctionnalités de formatage des chaînes.

La syntaxe de base consiste à utiliser{}et:pour remplacer le précédent% 。

La fonction format peut accepter un nombre illimité d'arguments, et leurs positions n'ont pas besoin d'être dans l'ordre.

Exemple

>>>"{} {}".format("hello", "world") # Sans définir de position spécifiée, utilise l'ordre par défaut 'hello world' >>> "{0} {1}".format("hello", "world") # Définir la position spécifiée 'hello world' >>> "{1} {0} {1}".format("hello", "world") # Définir la position spécifiée 'world hello world'

Vous pouvez également définir des paramètres :

Exemple

#!/usr/bin/python # -*- coding: UTF-8 -*- print("Nom du site : {name}, Adresse {url}".format(name="Exemple", url="www.example.com")) # Définir les paramètres via un dictionnaire site = {"name": "Exemple", "url": "www.example.com"} print("Nom du site : {name}, Adresse {url}".format(**site)) # Définir les paramètres via un index de liste my_list = ['Exemple', 'www.example.com'] print("Nom du site : {0".format(my_list)) # "0" est requis

Le résultat de sortie est:

网站名:Example, 地址 www.example.com
网站名:Example, 地址 www.example.com
网站名:Example, 地址 www.example.com

Vous pouvez aussi passerstr.format()un objet :

Exemple

#!/usr/bin/python # -*- coding: UTF-8 -*- class AssignValue(object): def __init__(self, value): self.value = value my_value = AssignValue(6) print('value is: {0.value}'.format(my_value)) # "0" est facultatif

Le résultat de sortie est:

value 为: 6

Formatage des nombres

Le tableau suivant présente diverses méthodes de formatage des nombres avec str.format() :

>>> print("{:.2f}".format(3.1415926))
3.14
NumberFormatSortieDescription
3.1415926 {:.2f} 3.14 Conserver deux décimales
3.1415926 {:+.2f} +3.14 Conserver deux décimales avec signe
-1 {:-.2f} -1.00 Conserver deux décimales avec signe
2.71828 {:.0f} 3 Aucune décimale
5 {:0>2d} 05 Compléter le nombre avec des zéros (remplissage à gauche, largeur 2)
5 {:x<4d} 5xxx Compléter le nombre avec x (remplissage à droite, largeur 4)
10 {:x<4d} 10xx Compléter le nombre avec x (remplissage à droite, largeur 4)
1000000 {:,} 1,000,000 Format de nombre avec des virgules comme séparateurs
0.25 {:.2%} 25.00% Format en pourcentage
1000000000 {:.2e} 1.00e+09 Notation exponentielle
13 {:>10d}         13 Aligné à droite (par défaut, largeur 10)
13 {:<10d} 13 Aligné à gauche (largeur 10)
13 {:^10d}     13 Aligné au centre (largeur 10)
11
'{:b}'.format(11)
'{:d}'.format(11)
'{:o}'.format(11)
'{:x}'.format(11)
'{:#x}'.format(11)
'{:#X}'.format(11)
1011
11
13
b
0xb
0XB
Base

^, <, >Ce sont respectivement l'alignement centré, l'alignement à gauche et l'alignement à droite, suivis de la largeur,:Après le signe vient le caractère de remplissage, qui ne peut être qu'un seul caractère. S'il n'est pas spécifié, des espaces sont utilisés par défaut.

+signifie afficher avant les nombres positifs+, et avant les nombres négatifs-; (espace) signifie ajouter un espace avant les nombres positifs

b, d, o, x sont respectivement binaire, décimal, octal et hexadécimal.

De plus, nous pouvons utiliser des accolades{}pour échapper les accolades, comme dans l'exemple suivant :

Exemple

#!/usr/bin/python # -*- coding: UTF-8 -*- print ("La position correspondant à {} est {{0}}".format("exemple"))

Le résultat de sortie est:

example 对应的位置是 {0}

Python 字符串Chaîne Python

Autres extensions