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.

python-S02-E04.md 4.7 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. % Programmation avec Python (chapitre 4)
  2. % Dimitri Merejkowsky
  3. #
  4. \center \huge Tout depuis le début
  5. # Variables
  6. ```python
  7. >>> a = 3
  8. >>> b = 4
  9. >>> a + b
  10. 7
  11. ```
  12. # Maths
  13. ```python
  14. >>> 10 / 3
  15. 3.3333333333333335 # flottant!
  16. >>> 10 // 3
  17. 3 # division entière - quotient
  18. >>> 10 % 3
  19. 1 # division entière - reste
  20. ```
  21. # Comparaisons
  22. ```python
  23. >>> a = 3
  24. >>> b = 4
  25. >>> a == b
  26. False
  27. >>> a < b
  28. True
  29. ```
  30. # Chaînes de caractères
  31. ```python
  32. >>> prénom = "Alice"
  33. >>> message = "Bonjour, " + prénom
  34. >>> message
  35. "Bonjour, Alice"
  36. ```
  37. # input()
  38. Lire une entrée utilisateur
  39. ```python
  40. prénom = input("Entrez votre prénom: ")
  41. ```
  42. # Conversions
  43. ```python
  44. score = 42
  45. message = "Votre score est de: " + str(42)
  46. réponse = input("Entrez votre age")
  47. age = int(response)
  48. ```
  49. # Blocs - if
  50. ```python
  51. if a == 3:
  52. print("a égale 3")
  53. else:
  54. print("a est différent de 3")
  55. ```
  56. # Blocs - while
  57. ```python
  58. i = 0
  59. while i < 3:
  60. print(i)
  61. i = i +1
  62. ```
  63. # Blocs - break
  64. ```python
  65. i = 0
  66. while True:
  67. print(i)
  68. i = i + 1
  69. if i > 3:
  70. break
  71. ```
  72. # Fonctions
  73. ```python
  74. def additionne(x, y):
  75. return x + y
  76. >>> additionne(3, 5)
  77. 8
  78. ```
  79. # Variables globales
  80. ```python
  81. # salutation est une variable globale
  82. salutation = "Bonjour "
  83. def dire_bonjour(prénom):
  84. print(salutation + prénom)
  85. dire_bonjour("Dimitri")
  86. ```
  87. # Variables locales
  88. ```python
  89. def dire_bonjour(prénom):
  90. # prénom est une variable locale
  91. print("Bonjour " + prénom)
  92. dire_bonjour("Dimitri")
  93. print(prénom)
  94. ```
  95. # Variables locales (2)
  96. ```python
  97. def dire_bonjour(prénom):
  98. print("Bonjour " + prénom)
  99. prénom = "Dimitri"
  100. dire_bonjour(prénom)
  101. ```
  102. # Argument par défaut
  103. ```python
  104. def dire_bonjour(prénom, enthousiaste=False):
  105. message = "Bonjour " + prénom
  106. if enthousiaste:
  107. message += "!"
  108. print(message)
  109. ```
  110. ```python
  111. >>> dire_bonjour("John", enthousiaste=True)
  112. Bonjour John!
  113. >>> dire_bonjour("John")
  114. Bonjour John
  115. ```
  116. # print
  117. ```python
  118. a = 3
  119. print("la valeur de a est", a, "!")
  120. ```
  121. ```text
  122. la valeur de a est 3 !
  123. ```
  124. ```python
  125. print("un message " , end="")
  126. print("sur une seule ligne ", end="")
  127. print("mais en plusieurs bouts")
  128. ```
  129. ```text
  130. un message sur une seule ligne mais en plusieurs bouts
  131. ```
  132. # Listes
  133. ```python
  134. une_liste_vide = []
  135. deux_éléments = [1, 2]
  136. ```
  137. # Itérer sur une liste
  138. ```python
  139. for nom in ["Alice", "Bob", "Charlie"]:
  140. print(nom)
  141. ```
  142. # Indexer une liste
  143. ```python
  144. >>> joueurs = ["Alice", "Bob", "Charlie"]
  145. >>> joueurs[0]
  146. "Alice"
  147. >>> joueurs[1]
  148. "Bob"
  149. >>> joueurs[2]
  150. "Charlie"
  151. ```
  152. # Modifier une liste
  153. ```python
  154. >>> joueurs = ["Alice", "Bob", "Charlie"]
  155. >>> joueurs[1] = "John"
  156. >>> joueurs
  157. ["Alice", "John", "Charlie"]
  158. ```
  159. # Test d'appartenance
  160. ```python
  161. >>> joueurs = ["Alice", "Bob", "Charlie"]
  162. >>> "Alice" in joueurs
  163. True
  164. >>> "Eve" in joueurs
  165. False
  166. ```
  167. # Dictionnaires
  168. ```python
  169. un_dictionnaire_vide = {}
  170. une_clé_une_valeur = { "la_terre_est_plate": False }
  171. scores = { "Alice": 20, "Bob": 14 }
  172. ```
  173. # Indéxer un dictionnaire
  174. ```python
  175. >>> scores = { "Alice": 20, "Bob": 14 }
  176. >>> scores["Alice"]
  177. 20
  178. >>> scores["Bob"]
  179. 14
  180. ```
  181. # Modifier un dictionnaire
  182. ```python
  183. >>> scores = { "Alice": 20, "Bob": 14 }
  184. # mise à jour
  185. >>> scores["Alice"] = 30
  186. >>> scores
  187. { "Alice": 30, "Bob": 14 }
  188. # insertion
  189. >>> scores["Charlie"] = 23
  190. >>> scores
  191. { "Alice": 30, "Bob": 14, "Charlie": 23 }
  192. ```
  193. # Test d'appartenance
  194. ```python
  195. >>> scores = { "Alice": 20, "Bob": 14 }
  196. >>> "Alice" in scores
  197. True
  198. >>> "Eve" in scores
  199. False
  200. ```
  201. # Itérer sur les clés d'un dictionnaire
  202. ```python
  203. scores = { "Alice": 20, "Bob": 14 }
  204. for nom in scores:
  205. score = scores[nom]
  206. print(nom, "a un score de", score)
  207. ```
  208. #
  209. \center \huge Atelier
  210. # Consignes
  211. * Demander une longueur à l'utilisateur
  212. * Afficher un sapin avec la bonne taille (ici, 7):
  213. \vfill
  214. ```
  215. #
  216. ###
  217. #####
  218. #######
  219. #
  220. #
  221. ```
  222. # À faire chez vous
  223. Préparation:
  224. * Aller sur:
  225. * git.e2li.org/
  226. * dmerejkowsky/cours-python /
  227. * tree /
  228. * saison-2/sources/sapin
  229. * Récupérer `sapin_a.py` et `sapin_b.py`
  230. * Choisir celui que vous préférez comme point de départ.
  231. # Premier exercice
  232. * Ajouter `import shutil` en haut du fichier
  233. * Utiliser la fonction `shutil.get_terminal_size()` pour dessiner un saping qui
  234. prend toute la place disponible
  235. # Deuxième exercice
  236. Ajouter `import random` en haut du fichier
  237. Utiliser la fonction `random.randint(0, n)` qui renvoie un entier entre 0 et `n-1` pour
  238. remplacer certains des `#` par des `.` ou des `O` de façon à obtenir un sapin décoré:
  239. ```text
  240. #
  241. ##.
  242. ####.
  243. ###.O##
  244. ####OO#.#
  245. ##O####O###
  246. #.########.##
  247. ##..##O.#######
  248. ########.######.O
  249. #
  250. #
  251. ```
  252. #
  253. Envoyez votre code et/ou vos questions par mail à `dimitri@e2li.org`
  254. Bonne chance!