Les 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 à leur sujet 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 que Python en ait besoin d'un supplémentaire à partir de ce moment?
f'{2+2}'
renvoie 4, f'{{2+2}}'
renvoie 2 + 2, f'{{{2+2}}}'
➝ {4}, f'{{{{2+2}}}}'
➝ {{2 + 2}} et ainsi de suite. Cela a du sens mais laisse un peu perplexe à première vue.
f'{74}'
c'est la même chose que f'74'
.
str.format
fait aussi.
"{74}".format(...)
nécessiterait une séquence d'au moins 74 éléments.
f"{{2+2}}"
etf"{{{2+2}}}"
, qui sont'{2+2}'
et'{4}'
respectivement