您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
此仓库已存档。您可以查看文件和克隆,但不能推送或创建工单/合并请求。
 
 
 
 
 
 

1.4 KiB

% notions: string.format(), mini-language de specification de format

Formater des chaînes de caractères

Problème:

\vfill

>>> nom = "Ford"
>>> résultat = 42
>>> message = "Bonjour, " + nom + ". "
>>> message += "La réponse est: " + str(résultat) + "."
>>> message
'Bonjour, Ford. La réponse est: 42.'

\vfill

Ce n’est pas très lisible ...

format()

Solution: utiliser un “template” et la méthode format()

\vfill

>>> nom = "Ford"
>>> résultat = 42
>>> template = "Bonjour, {}. La réponse est: {}"
>>> message = template.format(nom, résultat)
>>> message
'Bonjour, Ford. La réponse est: 42.'

format() avancé

On peut aussi nommer les remplacements:

template = "Bonjour, {nom}. La réponse est: {résultat}"
template.format(nom="Ford", résultat=42)

format() avancé

On peut aussi faire des alignements et du “padding”:

\vfill

template = "{name:>10}: {score:03}"
print(template.format(name="Alice", score=42))
print(template.format(name="Bob", score=5))
     Alice: 042
       Bob: 005

Explications

Le texte dans les accolades après le : est un mini-langage de spécification de format:

  • >10 signifie: “aligner a droite, taille maximale 10”
  • 03 signifie: “rajouter des zéros en début de nombre jusquà atteindre 3 chiffres”.

Plus de précisions dans la documentation:

\url{https://docs.python.org/fr/3/library/string.html#format-specification-mini-language}.