|
@@ -0,0 +1,37 @@
|
|
|
|
|
+Les exemples des deux sections précédentes montrent deux façons de "formater" des chaînes de caractères.
|
|
|
|
|
+
|
|
|
|
|
+Il est en effet fréquent de vouloir insérer des données dans une chaîne : nombres entiers, etc.
|
|
|
|
|
+
|
|
|
|
|
+Une approche possible serait de combiner les éléments à afficher via l'opérateur de concaténation `+` :
|
|
|
|
|
+
|
|
|
|
|
+```python
|
|
|
|
|
+print("Hello World, nous sommes en " + str(2018))
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+Mais tu peux déjà deviner que cette syntaxe serait lourde si on doit insérer de nombreuses variables.
|
|
|
|
|
+
|
|
|
|
|
+Voici une autre façon de faire :
|
|
|
|
|
+
|
|
|
|
|
+```python
|
|
|
|
|
+nom = "Nelson Mandela"
|
|
|
|
|
+jour_naissance = 18
|
|
|
|
|
+mois_naissance = "juillet"
|
|
|
|
|
+annee_naissance = 1918
|
|
|
|
|
+infos = "{:s} est né le {:d} {:s} {:d}".format(nom, jour_naissance, mois_naissance, annee_naissance)
|
|
|
|
|
+print(infos)
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+Dans la chaîne entre guillemets sur laquelle on applique `format()`, tu vois des éléments entre accolades comme `{:s}` et `{:d}`.
|
|
|
|
|
+`{:s}` définit un emplacement pour l'insertion d'une **chaîne de caractères**, et `{:d}` un emplacement pour l'insertion d'un **entier**. Le type des paramètres donnés à `format()` doit correspondre à celui des emplacements (ici, dans l'ordre, une chaîne, un entier, une chaîne, un entier).
|
|
|
|
|
+
|
|
|
|
|
+Reprenons l'exemple du point précédent "Fonctions" :
|
|
|
|
|
+
|
|
|
|
|
+```python
|
|
|
|
|
+jour = 1
|
|
|
|
|
+mois = 3
|
|
|
|
|
+annee = 2018
|
|
|
|
|
+date = "{:02d}/{:02d}/{:04d}".format(jour, mois, annee)
|
|
|
|
|
+print(date) # affiche 01/03/2018
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+C'est le même principe, mais comme `jour` et `mois` sont susceptibles d'être inférieurs à 10, on utilise `{:02d}` au lieu de `{:d}`, ce qui signifie : afficher 2 caractères même si le nombre n'a qu'un chiffre (le 2 avant le d), et utiliser des 0 comme caractères supplémentaires (sinon des espaces seraient insérés à la place).
|