184 votes

Comment utiliser la nouvelle ligne ' \n ' dans f-string pour formater la sortie en Python 3.6 ?

J'aimerais savoir comment formater ce cas de manière pythonique avec des chaînes f :

names = ['Adam', 'Bob', 'Cyril']
text = f"Winners are:\n{'\n'.join(names)}"
print(text)

Le problème est que '\' ne peut pas être utilisé à l'intérieur de la {...} des portions d'expression d'une chaîne f. Sortie attendue :

Winners are:
Adam
Bob
Cyril

18 votes

f"Winners are:\n{chr(10).join(names)}"

1voto

Bill Stratton Points 11

Si (et seulement si !) la lisibilité est la priorité absolue, et que la vitesse n'est pas un facteur déterminant, les chaînes f sont très utiles pour rendre une fonction simple auto-documentée, même s'il existe des moyens plus simples de la programmer. La lisibilité est maximisée avec les f-strings lorsque : (1) les instructions qui changent l'état de l'argument sont clairement évidentes, et (2) lorsque les arguments sont imprimés, l'instruction d'impression est soigneusement formatée et présentée visuellement pour faire ressortir les arguments : ''' fonction pour imprimer un en-tête d'identification, composé de du titre, du nom et du prénom fournis par le programmeur : ''' FORMAT_DATE = "%m-%d-%y %H:%M:%S"

date_and_time = datetime.now()
name_line = f"* {lastname}, {firstname}"
title_line = f"* {title}"
date_line = f"* {date_and_time.strftime(FORMAT_DATE)}"
print(name_line
    + '\n'
    + title_line
    + '\n'
    + date_line)

output:
* Lovelace, Ada
* Bernoulli Numbers algorithm implemented in Python
* 10-28-42 20:13:22

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X