f-Strings sont disponibles à partir de Python 3.6 et sont très utiles pour formater les chaînes:
>>> n='you'
>>> f'hello {n}, how are you?'
'hello you, how are you?'
En savoir plus sur eux dans f-Strings de Python 3: une syntaxe de formatage de chaîne améliorée (Guide) . J'ai trouvé un modèle intéressant:
Notez que l'utilisation d'accolades triples entraînera la présence d'accolades simples dans votre chaîne:
>>> f"{{{74}}}" '{74}'
Cependant, vous pouvez obtenir plus d'accolades à afficher si vous utilisez plus de trois accolades:
>>> f"{{{{74}}}}" '{{74}}'
Et c'est exactement le cas:
>>> f'{74}'
'74'
>>> f'{{74}}'
'{74}'
Maintenant, si nous passons de deux {
à trois, le résultat est le même:
>>> f'{{{74}}}'
'{74}' # same as f'{{74}}' !
Il nous faut donc jusqu'à 4! ({{{{
) pour obtenir deux accolades en sortie:
>>> f'{{{{74}}}}'
'{{74}}'
Pourquoi est-ce? Que se passe-t-il avec deux accolades pour avoir Python nécessite un supplémentaire à partir de ce moment?
Les accolades doubles échappent aux accolades, de sorte qu'aucune interpolation ne se produit: {{
➝ {
, et }}
➝ }
. Et 74
reste une chaîne inchangée, '74'
.
Avec les triple croisillons, les doubles croisillons extérieurs sont échappés, comme ci-dessus. Les accolades internes, d'autre part, conduisent à une interpolation de chaîne régulière de la valeur 74
.
Autrement dit, la chaîne f'{{{74}}}'
est équivalent à f'{{ {74} }}'
, mais sans espaces (ou, de manière équivalente, à '{' + f'{74}' + '}'
).
Vous pouvez voir la différence lors du remplacement de la constante numérique par une variable:
In [1]: x = 74
In [2]: f'{{x}}'
Out[2]: '{x}'
In [3]: f'{{{x}}}'
Out[3]: '{74}'