Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
Це архівний репозитарій. Ви можете переглядати і клонувати файли, але не можете робити пуш або відкривати питання/запити.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. % notions: string.format(), mini-language de specification de format
  2. # Formater des chaînes de caractères
  3. Problème:
  4. \vfill
  5. ```python
  6. >>> nom = "Ford"
  7. >>> résultat = 42
  8. >>> message = "Bonjour, " + nom + ". "
  9. >>> message += "La réponse est: " + str(résultat) + "."
  10. >>> message
  11. 'Bonjour, Ford. La réponse est: 42.'
  12. ```
  13. \vfill
  14. Ce n'est pas très lisible ...
  15. # format()
  16. Solution: utiliser un "template" et la méthode `format()`
  17. \vfill
  18. ```python
  19. >>> nom = "Ford"
  20. >>> résultat = 42
  21. >>> template = "Bonjour, {}. La réponse est: {}"
  22. >>> message = template.format(nom, résultat)
  23. >>> message
  24. 'Bonjour, Ford. La réponse est: 42.'
  25. ```
  26. # format() avancé
  27. On peut aussi nommer les remplacements:
  28. ```python
  29. template = "Bonjour, {nom}. La réponse est: {résultat}"
  30. template.format(nom="Ford", résultat=42)
  31. ```
  32. # format() avancé
  33. On peut aussi faire des alignements et du "padding":
  34. \vfill
  35. ```python
  36. template = "{name:>10}: {score:03}"
  37. print(template.format(name="Alice", score=42))
  38. print(template.format(name="Bob", score=5))
  39. ```
  40. ```
  41. Alice: 042
  42. Bob: 005
  43. ```
  44. # Explications
  45. Le texte dans les accolades après le `:` est un mini-langage de spécification de format:
  46. * `>10` signifie: "aligner a droite, taille maximale 10"
  47. * `03` signifie: "rajouter des zéros en début de nombre jusquà atteindre 3 chiffres".
  48. Plus de précisions dans la documentation:
  49. \url{https://docs.python.org/fr/3/library/string.html#format-specification-mini-language}.