0Pricing
Python Academy · Leçon

Chaînes modèles et str.format

Découvrir d’autres outils de mise en forme

Chaînes modèles et str.format est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 4 leçons au total.

Autres outils de mise en forme

Au-delà des chaînes f, Python propose deux autres outils de mise en forme : la méthode str.format() et la classe string.Template. Chacun convient à des situations différentes.

print('Hello, {}!'.format('World'))

Principes de str.format

str.format() remplace les espaces réservés {} par des arguments, dans l’ordre. Cette fonctionnalité est antérieure aux chaînes f, mais apparaît encore dans de nombreux programmes.

msg = '{} is {} years old'.format('Ada', 36)
print(msg)

Index positionnels

Placez des nombres entre les accolades pour réutiliser ou réordonner les arguments selon leur position.

print('{0} {1} {0}'.format('echo', 'once'))

Espaces réservés nommés

Utilisez des noms entre les accolades et transmettez des arguments nommés. Les modèles deviennent ainsi explicites.

print('{name} scored {score}'.format(name='Lin', score=95))

Les spécificateurs de format s’appliquent toujours

Le même mini-langage fonctionne après deux-points dans str.format, ce qui vous permet de contrôler la largeur, la précision et l’alignement.

print('{:.2f}'.format(3.14159))
print('{:>8}'.format('hi'))

Mise en forme à partir d’un dictionnaire

Décompressez un dictionnaire dans str.format avec ** pour remplir les espaces réservés nommés.

data = {'city': 'Rome', 'temp': 27}
print('{city}: {temp} C'.format(**data))

Présentation des chaînes modèle

string.Template utilise des espaces réservés fondés sur $. Cet outil est volontairement simple et plus sûr pour les modèles fournis par l’utilisateur, car il ne peut pas exécuter d’expressions arbitraires.

from string import Template
t = Template('Hello, $name!')
print(t.substitute(name='World'))

Des accolades pour plus de clarté

Entourez le nom d’un espace réservé d’accolades, comme dans ${name}, lorsqu’il se trouve à côté d’un autre texte.

from string import Template
t = Template('${item}s cost $$5')
print(t.substitute(item='apple'))

safe_substitute

substitute lève KeyError lorsque des noms sont absents. safe_substitute laisse au contraire les espaces réservés inconnus inchangés.

from string import Template
t = Template('$greeting, $name')
print(t.safe_substitute(greeting='Hi'))

Quand utiliser quel outil

Conseils : préférez les chaînes f pour le code courant. Utilisez str.format lorsque le modèle est séparé des données. Utilisez le modèle pour les modèles non fiables fournis par l’utilisateur.

name = 'Sam'
print(f'f-string: {name}')
print('format: {}'.format(name))

Modèles à partir de texte externe

Comme le texte du modèle n'est qu'une chaîne, vous pouvez le charger depuis un fichier de configuration ou une base de données, puis substituer les valeurs au moment de l'exécution.

from string import Template
stored = 'Order $id ships to $city'
t = Template(stored)
print(t.substitute(id=7, city='Oslo'))

Vérification rapide

Quel outil est le plus sûr pour substituer des valeurs dans un modèle fourni par un utilisateur non fiable ?

Récapitulatif : chaînes de modèle et str.format

Résumé des alternatives aux chaînes f :

  • str.format() utilise des espaces réservés {} et prend en charge les spécifications de formatage positionnelles, nommées et complètes.
  • string.Template utilise des espaces réservés $name et est sûr avec des entrées non fiables.
  • safe_substitute laisse les espaces réservés inconnus en place.
  • Privilégiez les chaînes f dans le code courant ; utilisez ces outils lorsque les modèles sont externes ou non fiables.
from string import Template
print(Template('Bye, $who').substitute(who='all'))
print('Done: {}'.format(True))

Questions Fréquemment Posées

La leçon « Chaînes modèles et str.format » est-elle gratuite ?

Oui — le texte complet de « Chaînes modèles et str.format » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Chaînes modèles et str.format » ?

Découvrir d’autres outils de mise en forme Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Python Academy ?

Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Chaînes modèles et str.format » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?

Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Expressions des f-strings
  2. Spécificateurs de format
  3. Mini-langage de formatage
  4. Chaînes modèles et str.format
← Retour à Python Academy