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.
Deze repo is gearchiveerd. U kunt bestanden bekijken en het klonen, maar niet pushen of problemen/pull-requests openen.

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

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