Merci à Le tweet de David Beazley J'ai récemment découvert que la nouvelle Python 3.6 f-strings peuvent également être imbriqués :
>>> price = 478.23
>>> f"{f'${price:0.2f}':*>20s}"
'*************$478.23'
Ou :
>>> x = 42
>>> f'''-{f"""*{f"+{f'.{x}.'}+"}*"""}-'''
'-*+.42.+*-'
Bien que je sois surpris que cela soit possible, je me demande à quel point c'est pratique, quand l'imbrication des chaînes f serait-elle utile ? Quels cas d'utilisation cela peut-il couvrir ?
Remarque : La PEP elle-même ne mentionne pas l'imbrication des chaînes de caractères f, mais il existe un fichier scénario de test spécifique .
5 votes
Probablement dans le même but que l'emboîtement des anciens.
str.format
: stackoverflow.com/questions/40245650/1 votes
Un autre bon aquí . Je vous laisse le soin de décider si vous voulez duper le marteau.
1 votes
@TigerhawkT3 merci pour ces bons exemples ! Je ne suis pas sûr qu'il s'agisse de doublons directs mais c'est tout à fait pertinent - en ce qui concerne la fermeture j'accepterai ce que la communauté décidera. J'espère aussi qu'il y a peut-être quelque chose de spécifique aux cordes F ici. Nous devrions probablement donner au sujet du temps et une chance.
6 votes
Je ne sais pas si cela vaut la peine de répondre, mais les pyramides sont maintenant plus faciles à imprimer sur une seule ligne.
print("\n".join(f'{a:{a}<{a}}' for a in range(1,10)))
0 votes
@BhargavRao wow, bien joué ! Merci.
2 votes
J'ai fait cette monstruosité pour une minuterie il y a un moment :
f'''A timer has been set for {f"{hrs:02d}:{mins:02d}:{secs:02d}" if hrs > 0 else f"{f'{mins:02d}:{secs:02d}' if mins > 0 else f'{secs} seconds'}"}!'''