You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

01-flot-de-contrôle.rst 2.6 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. Flot de contrôle
  2. ================
  3. Pour l'instant, toutes les instructions que nous avons
  4. écrites ont été exécutée une par une et dans l'ordre
  5. d'apparition dans le code source.
  6. Modifier l'ordre d'exécution de ces lignes s'appelle modifier le flot de
  7. contrôle, et c'est l'essence de la programmation!
  8. if
  9. ++
  10. On peut utiliser le mot ``if`` pour autoriser ou empécher
  11. l'éxcution du code en-dessous::
  12. a = 3
  13. b = 4
  14. if a == b:
  15. print("a et b sont égaux")
  16. print("on continue")
  17. # affiche juste
  18. # on continue
  19. La 4ème ligne n'est pas éxécutée parce la condition
  20. est fausse.
  21. Notes:
  22. * il y a le caractère ``:`` (deux points) à la fin de la ligne
  23. * le code en-dessous du ``if`` commence par 4 espaces: on appelle
  24. cela une *indentation*
  25. * si la condition n'est pas vraie, rien ne se passe
  26. Notez qu'on peut mettre uniquement une variable ou une valeur
  27. après le if. Ceci ne fonctionne pas::
  28. if a = 3:
  29. print("a égale 3")
  30. # affiche: SyntaxError
  31. On parle aussi de "bloc" si plusieurs lignes sont identées::
  32. a = 3
  33. b = 4
  34. if a == b:
  35. # début du bloc
  36. print("a et b sont égaux")
  37. c = 2 * a
  38. # fin du block
  39. print("on continue")
  40. if / else
  41. ---------
  42. On peut utiliser le mot ``else`` après un condition en ``if``
  43. pour éxécutér un bloc si la condition est fausse::
  44. a = 3
  45. b = 4
  46. if a == b:
  47. print("a et b sont égaux")
  48. else:
  49. print("a et b sont différent")
  50. # affiche: a et b sont différents
  51. if / elif
  52. ---------
  53. On peut utiliser ``if``, ``elif`` et ``else`` pour enchaîner plusieurs
  54. conditions::
  55. age = 23
  56. if age < 10:
  57. print("âge inférieur à dix")
  58. elif 10 <= age < 20:
  59. print("âge entre 10 et 20")
  60. elif 20 <= age < 40:
  61. print("âge entre 20 et 40")
  62. else:
  63. print("âge supérieur à 40")
  64. # affiche: âge entre 20 et 40
  65. while
  66. -----
  67. On peut utiliser ``while`` pour répéter un bloc tant qu'une condition
  68. est vraie::
  69. i = 0
  70. while i < 3:
  71. print(i)
  72. i = i + 1
  73. .. code-block:: text
  74. 0
  75. 1
  76. 2
  77. Notez que la variable ``i`` passe par plusieurs valeurs différentes.
  78. Boucle infinie
  79. --------------
  80. On parle de *boucle infinie* si la condition ne devient jamais fausse::
  81. while True:
  82. print("spam!")
  83. Dans ce cas, il faut appuyer sur ``CTRL-C`` pour interrompre
  84. le programme.
  85. Notez ici qu'on a mis directement la valeur ``True``, et non une comparaison.
  86. Combiner while et if
  87. --------------------
  88. On peut "sortir" de la boucle ``while`` avec ``break``::
  89. i = 0
  90. while True:
  91. i = i + 1
  92. print(i)
  93. if i > 3:
  94. break
  95. .. code-block:: text
  96. 1
  97. 2
  98. 3
  99. 4