English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Préface
Python dans 2.6 Dans la nouvelle version, une nouvelle méthode de formatage de chaîne a été ajoutée : str.format() . Sa syntaxe de base est de remplacer {} et : par %. de l'ancienne syntaxe.
La syntaxe des placeholders lors de la formatage :
replacement_field ::= "{" [field_name] ["!" conversion] [":" format_spec] "}"
règle de "mapping"
Par la position
La méthode str.format() peut accepter un nombre illimité de paramètres, et les positions peuvent ne pas suivre l'ordre :
>>> "{0} {1).format("hello", "world") 'hello world' >>> "{0} {1}".format("hello", "world") 'hello world' >>> "{1} {0} {1).format("hello", "world") 'world hello world'
Par les paramètres de mot-clé
Lors de l'utilisation des paramètres clés, le nom des paramètres doit être fourni dans la chaîne :
>>> "Je suis {name}, l'âge est {age}".format(name="huoty", age=18) "Je suis huoty, l'âge est 18' >>> user = {"name": "huoty", "age": 18} >>> "Je suis {name}, l'âge est {age}".format(**user) "Je suis huoty, l'âge est 18'
Par l'attribut de l'objet
str.format() peut directement lire les attributs de l'utilisateur:
>>> class User(object): ... def __init__(self, name, age): ... self.name = name ... self.age = age ... ... def __str__(self): ... return "{self.name}({self.age})".format(self=self) ... ... def __repr__(self): ... return self.__str__() ... ... >>> user = User("huoty", 18) >>> user huoty(18) >>> "Je suis {user.name}, l'âge est {user.age}".format(user=user) "Je suis huoty, l'âge est 18'
Par l'index
Dans une chaîne de caractères nécessitant un formatage, les éléments peuvent être accédés via des indices :
>>> names, ages = ["huoty", "esenich", "anan"], [18, 16, 8} >>> "Je suis {0[0]}, l'âge est {1[2]}".format(names, ages) "Je suis huoty, l'âge est 8' >>> users = {"names": ["huoty", "esenich", "anan"], "ages": [18, 16, 8]} >>> "Je suis {names[0]}, l'âge est {ages[0]}".format(**users)
Spécification de la conversion
Il est possible de spécifier le type de conversion de la chaîne :
conversion ::= "r" | "s" | "a"
Dans lequel "!r" correspond à repr() ; "!s" correspond à str() ; "!a" correspond à ascii(). Exemple :
>>> "repr() affiche les guillemets: {!r}; str() ne teste pas: {!s}".format('test1', 'test2) "repr() affiche les guillemets: 'test1'; str() ne teste pas:2"
Caractère de formatage
Remplissage et alignement
Le remplissage suit souvent l'alignement. ^, <, > représentent respectivement centré, aligné à gauche, aligné à droite. Le nombre suivant représente la largeur, et le : suivi d'un caractère représente le remplissage. Si aucun caractère n'est spécifié, il est remplacé par un espace par défaut.
>>> "{:>}8".format("181716)") ' 181716' >>> "{:0>8".format("181716)") '00181716' >>> "{:->8".format("181716)") '--181716' >>> "{:-<8".format("181716)") '181716--' >>> "{:-^8".format("181716)") '-181716-' >>> "{:-<25}>".format("Here ") 'Here --------------------'
Précision flottante
Utilisez f pour représenter le type flottant et vous pouvez ajouter un contrôle de précision avant :
>>> "[ {:.2f} ]".format(321.33345) '[ 321.33 ]' >>> "[ {:.1f} ]".format(321.33345) '[ 321.3 ]' >>> "[ {:.4f} ]".format(321.33345) '[ 321.3335 ]' >>> "[ {:.4f} ]".format(321) '[ 321.0000 ]'
Il est également possible de spécifier un signe pour les nombres à virgule flottante,+ représente afficher avant un nombre positif +afficher avant un nombre négatif -; (espace) signifie ajouter un espace avant un nombre positif et -;- C'est identique à ne rien ajouter ({:f}) :
>>> '{:+f}); {:+f}'.format(3.141592657, -3.141592657) '+3.141593; -3.141593' >>> '{: f}; {: f}'.format(3.141592657, -3.141592657) ' 3.141593; -3.141593' >>> '{:f}; {:f}'.format(3.141592657, -3.141592657) '3.141593; -3.141593' >>> '{:-f}); {:-f}'.format(3.141592657, -3.141592657) '3.141593; -3.141593' >>> '{:+.4f}); {:+.4f}'.format(3.141592657, -3.141592657) '+3.1416; -3.1416'
Spécification de l'octal
>>> "int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}".format(18) 'int: 18; hex: 12; oct: 22; bin: 10010' >>> "int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}".format(18) 'int: 18; hex: 0x12; oct: 0o22; bin: 0b10010'
Séparateur de milliers
Il est possible d'utiliser "," comme séparateur de milliers :
>>> '{:,}'.format(1234567890) '1,234,567,890'
Affichage en pourcentage
>>> "progress: {:.2}.format(19.88/22) 'progress: 90.36%'
En réalité, format prend en charge encore plus de types de symboles :
type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
Autres astuces
Encapsulation des placeholders
Certains moments, l'encapsulation des placeholders est très utile :
>>> '{0:{fill}{align}16}'.format("hello", fill='*', align='^') '*****hello******' >>> >>> pour num dans range(5,12) : ... pour base en "dXob": ... print("{0:{width}{base}}".format(num, base=base, width=}}5), end=' ') ... print() ... ... 5 5 5 101 6 6 6 110 7 7 7 111 8 8 10 1000 9 9 11 1001 10 A 12 1010 11 B 13 1011
Utilisation comme fonction
Vous pouvez d'abord ne pas spécifier les paramètres de formatage et les appeler en tant que fonction à un endroit où vous n'en avez pas besoin :
>>> email_f = "Votre adresse e-mail était {email}".format >>> print(email_f(email="[email protected]")) Votre adresse e-mail était [email protected]
Echapper les accolades
Lorsque vous devez utiliser des accolades dans une chaîne, vous pouvez les échapper :
>>> "Le {} ensemble est souvent représenté comme {{0}} ".format("empty") Le ensemble vide est souvent représenté comme {0}
Résumé
Voici la fin de cet article. J'espère que le contenu de cet article peut vous aider dans vos études ou votre travail. Si vous avez des questions, vous pouvez laisser des commentaires pour échanger. Merci de votre soutien au tutoriel d'extase.
Déclaration : le contenu de cet article est issu du réseau, et appartient à l'auteur original. Le contenu est apporté par les utilisateurs d'Internet et téléchargé de manière autonome. Ce site ne détient pas de propriété intellectuelle, n'a pas été édité par l'homme, et n'assume aucune responsabilité juridique. Si vous trouvez du contenu suspect de violation de droits d'auteur, veuillez envoyer un email à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un email pour signaler une violation, et fournir des preuves pertinentes. Une fois vérifié, ce site supprimera immédiatement le contenu suspect de violation de droits d'auteur.