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-E08.md 8.8 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912
  1. % Programmation avec Python (Épisode 8)
  2. % Dimitri Merejkowsky
  3. #
  4. \center \huge Quizz de rentrée
  5. # Le quizz
  6. Imaginez que le code est dans un fichier `quizz.py`,
  7. et qu'on lance `python3 quizz.py` exemple.
  8. Les questions portent sur ce qui est affiché.
  9. #
  10. ```python
  11. print("Bonjour")
  12. ```
  13. \vfill
  14. 1. Bonjour
  15. 2. Au revoir
  16. #
  17. ```python
  18. print(1 + 2)
  19. ```
  20. \vfill
  21. 1. 2
  22. 2. 3
  23. #
  24. ```python
  25. print(11 / 2)
  26. ```
  27. \vfill
  28. 1. 5
  29. 2. 5.5
  30. #
  31. ```python
  32. print(11 // 2)
  33. ```
  34. \vfill
  35. 1. 5
  36. 2. 5.5
  37. #
  38. ```python
  39. print(11 % 2)
  40. ```
  41. \vfill
  42. 1. 0
  43. 2. 1
  44. #
  45. ```python
  46. print(1 + 2 * 3)
  47. ```
  48. \vfill
  49. 1. 9
  50. 2. 7
  51. #
  52. ```python
  53. print((1 + 2) * 3)
  54. ```
  55. \vfill
  56. 1. 9
  57. 2. 7
  58. #
  59. ```python
  60. a = 2
  61. print(a)
  62. ```
  63. \vfill
  64. 1. 2
  65. 2. 3
  66. #
  67. ```python
  68. a = 2
  69. b = 3
  70. print(a + b)
  71. ```
  72. \vfill
  73. 1. 5
  74. 2. 4
  75. #
  76. ```python
  77. message = "Bonjour"
  78. print(message)
  79. ```
  80. \vfill
  81. 1. Bonjour
  82. 2. Au revoir
  83. #
  84. ```python
  85. message = "Bonjour"
  86. message = message + " monde"
  87. print(message)
  88. ```
  89. \vfill
  90. 1. Bonjour
  91. 2. Bonjour monde
  92. #
  93. ```python
  94. message = "Bonjour"
  95. message += " monde"
  96. print(message)
  97. ```
  98. \vfill
  99. 1. Bonjour
  100. 2. Bonjour monde
  101. #
  102. ```python
  103. message = "Bonjour en Anglais se dit 'hello'"
  104. print(message)
  105. ```
  106. \vfill
  107. 1. Bonjour en Anglais se dit hello
  108. 2. Bonjour en Anglais se dit 'hello'
  109. #
  110. ```python
  111. message = 'Bonjour en Anglais se dit "hello"'
  112. print(message)
  113. ```
  114. \vfill
  115. 1. Bonjour en Anglais se dit 'hello'
  116. 2. Bonjour en Anglais se dit "hello"
  117. #
  118. ```python
  119. réponse = 42
  120. message = "La réponse est: " + str(réponse)
  121. print(message)
  122. ```
  123. \vfill
  124. 1. La réponse est: 'réponse'
  125. 2. La réponse est: 42
  126. #
  127. ```python
  128. entrée_utilisateur = "40"
  129. age = int(entrée_utilisateur)
  130. année_de_naissance = 2020 - age
  131. print(année - age)
  132. ```
  133. \vfill
  134. 1. 1980
  135. 2. 40
  136. #
  137. ```python
  138. la_terre_est_plate = False
  139. print(la_terre_est_plate)
  140. ```
  141. \vfill
  142. 1. True
  143. 2. False
  144. #
  145. ```python
  146. il_pleut = True
  147. j_ai_mon_parapluie = False
  148. print(il_pleut and j_ai_mon_parapluie)
  149. ```
  150. \vfill
  151. 1. True
  152. 2. False
  153. #
  154. ```python
  155. il_pleut = True
  156. j_ai_mon_parapluie = False
  157. je_suis_mouillé = il_pleut and (not j_ai_mon_parapluie)
  158. print(je_suis_mouillé)
  159. ```
  160. \vfill
  161. 1. True
  162. 2. False
  163. #
  164. ```python
  165. a = 2
  166. b = 3
  167. print(a == b)
  168. ```
  169. \vfill
  170. 1. True
  171. 2. False
  172. #
  173. ```python
  174. a = 2
  175. b = 3
  176. print(a != b)
  177. ```
  178. \vfill
  179. 1. True
  180. 2. False
  181. #
  182. ```python
  183. a = 2
  184. b = 3
  185. print(a < b)
  186. ```
  187. \vfill
  188. 1. True
  189. 2. False
  190. #
  191. ```python
  192. a = 2
  193. b = 2
  194. print(a <= b)
  195. ```
  196. \vfill
  197. 1. True
  198. 2. False
  199. #
  200. ```python
  201. min = 2
  202. x = 3
  203. max = 5
  204. print(min < x < max)
  205. ```
  206. \vfill
  207. 1. True
  208. 2. False
  209. #
  210. ```python
  211. a = 3
  212. b = 4
  213. if a == b:
  214. print("a et b sont égaux")
  215. else:
  216. print("a et b sont différents")
  217. ```
  218. \vfill
  219. 1. a et b sont égaux
  220. 2. a et b sont différents
  221. #
  222. ```python
  223. age = 18
  224. if age < 10:
  225. print("inférieur à dix")
  226. elif 10 <= age < 20:
  227. print("âge entre 10 et 20")
  228. elif 20 <= age < 40:
  229. print("âge entre 20 et 40")
  230. else:
  231. print("âge supérieur à 40")
  232. ```
  233. \vfill
  234. 1. âge entre 10 et 10
  235. 2. âge supérieur à 40
  236. #
  237. ```python
  238. i = 0
  239. while i < 3:
  240. i = i + 1
  241. print(i)
  242. ```
  243. \vfill
  244. 1. 2
  245. 2. 3
  246. #
  247. ```python
  248. i = 0
  249. while True:
  250. i = i + 1
  251. if i >= 3:
  252. break
  253. print(i)
  254. ```
  255. \vfill
  256. 1. 1
  257. 2. 3
  258. #
  259. ```python
  260. def dire_bonjour():
  261. print("Bonjour")
  262. def dire_au_revoir():
  263. print("Au revoir")
  264. dire_bonjour()
  265. ```
  266. \vfill
  267. 1. Bonjour
  268. 2. Au revoir
  269. #
  270. ```python
  271. def dire_bonjour(prénom):
  272. print("Bonjour " + prénom )
  273. dire_bonjour("Alice")
  274. ```
  275. \vfill
  276. 1. Bonjour Alice
  277. 2. Au revoir Alice
  278. #
  279. ```python
  280. def ma_fonction(x, y):
  281. return x -y
  282. résultat = ma_fonction(2, 5)
  283. print(résultat)
  284. ```
  285. \vfill
  286. 1. 3
  287. 2. -3
  288. #
  289. ```python
  290. def ma_fonction(x, y):
  291. return x -y
  292. résultat = ma_fonction(y=2, x=5)
  293. print(résultat)
  294. ```
  295. \vfill
  296. 1. 3
  297. 2. -3
  298. #
  299. ```python
  300. def dire_bonjour(prénom, enthousiaste=False):
  301. message = "Bonjour " + prénom
  302. if enthousiaste:
  303. message += "!"
  304. print(message)
  305. dire_bonjour("Thomas", enthousiaste=True)
  306. ```
  307. \vfill
  308. 1. Bonjour Thomas
  309. 2. Bonjour Thomas!
  310. #
  311. ```python
  312. def dire_bonjour(prénom, enthousiaste=False):
  313. message = "Bonjour " + prénom
  314. if enthousiaste:
  315. message += "!"
  316. print(message)
  317. dire_bonjour("Thomas")
  318. ```
  319. \vfill
  320. 1. Bonjour Thomas
  321. 2. Bonjour Thomas!
  322. #
  323. ```python
  324. a = "un"
  325. b = "deux"
  326. c = "trois"
  327. print(a, b, c)
  328. ```
  329. \vfill
  330. 1. undeuxtrois
  331. 2. un deux trois
  332. #
  333. ```python
  334. a = "chauve"
  335. b = "souris"
  336. print(a, b, sep="-")
  337. ```
  338. \vfill
  339. 1. chauve-souris
  340. 2. chauve souris
  341. #
  342. ```python
  343. def ne_fait_rien():
  344. pass
  345. ne_fait_rien()
  346. ```
  347. \vfill
  348. 1. <rien>
  349. 2. ne_fait_rien
  350. #
  351. ```python
  352. def ne_renvoie_rien():
  353. a = 2
  354. b = 3
  355. c = a + b
  356. résultat = ne_renvoie_rien()
  357. print(résultat)
  358. ```
  359. \vfill
  360. 1. <rien>
  361. 2. None
  362. #
  363. ```python
  364. fruits = ["pomme", "poire"]
  365. print(len(fruits))
  366. ```
  367. \vfill
  368. 1. 1
  369. 2. 2
  370. #
  371. ```python
  372. fruits = ["pomme", "poire"]
  373. premier_fruit = fruits[0]
  374. print(premier_fruit)
  375. ```
  376. \vfill
  377. 1. "pomme"
  378. 2. "poire"
  379. #
  380. ```python
  381. prénoms = ["Alice", "Bob"]
  382. print("Alice" in prénoms)
  383. ```
  384. \vfill
  385. 1. True
  386. 2. False
  387. #
  388. ```python
  389. prénoms = ["Alice", "Bob"]
  390. print("Ève" not in prénoms)
  391. ```
  392. \vfill
  393. 1. True
  394. 2. False
  395. #
  396. ```python
  397. total = 0
  398. liste_de_nombres = [1, 2, 3]
  399. for élement in liste_de_nombres:
  400. total += élement
  401. print(total)
  402. ```
  403. \vfill
  404. 1. 0
  405. 2. 6
  406. #
  407. ```python
  408. prénoms = ["Alice", "Bob"]
  409. prénoms[1] = "Charlie"
  410. print(prénoms)
  411. ```
  412. \vfill
  413. 1. ['Alice', 'Bob', 'Charlie']
  414. 2. ['Alice', 'Bob']
  415. #
  416. ```python
  417. scores = {"Alice": 5, "Bob": 4}
  418. score_d_alice = scores["Alice"]
  419. print(score_d_alice)
  420. ```
  421. \vfill
  422. 1. 5
  423. 2. 4
  424. #
  425. ```python
  426. scores = {"Alice": 5, "Bob": 4}
  427. scores["Alice"] = 6
  428. print(scores)
  429. ```
  430. 1. {'Alice': 6, 'Bob': 4}
  431. 2. {'Alice': 5, 'Bob': 4}
  432. \vfill
  433. #
  434. ```python
  435. scores = {"Alice": 5, "Bob": 4}
  436. scores["Charlie"] = 3
  437. print(scores)
  438. ```
  439. \vfill
  440. 1. {'Alice': 5, 'Bob': 4, 'Charlie': 3}
  441. 1. {'Alice': 5, 'Bob': 4}
  442. #
  443. ```python
  444. scores = {"Alice": 5, "Bob": 4}
  445. del scores["Alice"]
  446. print(scores)
  447. ```
  448. \vfill
  449. 1. {'Alice': 5, 'Bob': 4}
  450. 1. {'Bob': 4}
  451. #
  452. ```python
  453. score_max = 0
  454. scores = {"Alice": 5, "Bob": 6, "Charlie": 4}
  455. gagnant = None
  456. for prénom_du_joueur in scores:
  457. score_du_joueur = scores[prénom_du_joueur]
  458. if score_du_joueur >= score_max:
  459. score_max = score_du_joueur
  460. gagnant = prénom_du_joueur
  461. print("gagnant:", gagnant, "score:", score_max)
  462. ```
  463. \vfill
  464. 1. Le gagnant est Bob avec un score de 6
  465. 2. Le gagnant est Alice avec un score de 5
  466. #
  467. ```python
  468. mon_tuple = (42, 14)
  469. print(42 in mon_tuple)
  470. ```
  471. \vfill
  472. 1. True
  473. 2. False
  474. #
  475. ```python
  476. mon_tuple = (42, 14)
  477. print(len(mon_tuple))
  478. ```
  479. \vfill
  480. 1. 1
  481. 2. 2
  482. #
  483. ```python
  484. mon_tuple = (42,)
  485. print(len(mon_tuple))
  486. ```
  487. \vfill
  488. 1. 1
  489. 2. 2
  490. #
  491. ```python
  492. couple = ("Batman", "Robin")
  493. héros, side_kick = couple
  494. print(side_kick)
  495. ```
  496. \vfill
  497. 1. Batman
  498. 2. Robin
  499. #
  500. ```python
  501. def tire_carte():
  502. valeur = "10"
  503. couleur = "trèfle"
  504. return (valeur, couleur)
  505. v, c = tire_carte()
  506. print(v, "de", c)
  507. ```
  508. \vfill
  509. 1. 10 de trèfle
  510. 2. 5 de carreau
  511. #
  512. ```python
  513. class MaClasse:
  514. pass
  515. mon_instance = MaClasse()
  516. mon_instance.mon_attribut = 42
  517. print(mon_instance.mon_attribut)
  518. ```
  519. \vfill
  520. 1. 42
  521. 2. None
  522. #
  523. ```python
  524. class MaClasse:
  525. def ma_méthode(self):
  526. return 42
  527. mon_instance = MaClasse()
  528. print(mon_instance.ma_méthode())
  529. ```
  530. \vfill
  531. 1. 42
  532. 2. None
  533. #
  534. ```python
  535. class MaClasse:
  536. def __init__(self):
  537. self.mon_attribut = 42
  538. def affiche_mon_attribut(self):
  539. print(self.mon_attribut)
  540. mon_instance = MaClasse()
  541. mon_instance.affiche_mon_attribut()
  542. ```
  543. \vfill
  544. 1. 42
  545. 2. None
  546. #
  547. ```python
  548. class MaClasse:
  549. def méthode1(self):
  550. return 2
  551. def méthode2(self):
  552. return 3
  553. def grosse_méthode(self):
  554. résultat = self.méthode1() + self.méthode2()
  555. return résultat
  556. mon_instance = MaClasse()
  557. résultat = mon_instance.grosse_méthode()
  558. print(résultat)
  559. ```
  560. \vfill
  561. 1. 5
  562. 2. None
  563. #
  564. ```python
  565. class Chat:
  566. def __init__(self, nom):
  567. self.nom = nom
  568. chat = Chat("Monsieur Moustaches")
  569. print(chat.nom)
  570. ```
  571. \vfill
  572. 1. None
  573. 2. Monsieur Moustaches
  574. #
  575. ```python
  576. class Chat:
  577. def __init__(self, nom):
  578. self.nom = nom
  579. class Humain:
  580. def __init__(self, prénom):
  581. self.prénom = prénom
  582. def adopte(self, chat):
  583. print(self.prénom, "adopte", chat.nom)
  584. boule_de_poils = Chat("Boule de Poils")
  585. bernard = Humain("Bernard")
  586. bernard.adopte(boule_de_poils)
  587. ```
  588. \vfill
  589. 1. Bernard adopte Boule de Poils
  590. 2. Boule de Poils adopte Bernard
  591. #
  592. ```python
  593. class Chat:
  594. def __init__(self, nom):
  595. self.nom = nom
  596. def ronronne(self):
  597. print(self.nom, 'fait: "prrrrr"')
  598. def caresse(self):
  599. self.ronronne()
  600. boule_de_poils = Chat("Boule de poils")
  601. boule_de_poils.caresse()
  602. ```
  603. \vfill
  604. 1. rien
  605. 2. Boule de poils fait: "prrrrr"
  606. #
  607. ```python
  608. # Tous les enfants ont un chat!
  609. class Enfant:
  610. def __init__(self, prénom, chat):
  611. self.prénom = prénom
  612. self.chat = chat
  613. def console(self):
  614. self.chat.caresse()
  615. boule_de_poils = Chat("boule_de_poils")
  616. alice = Enfant("Alice", boule_de_poils)
  617. alice.console()
  618. ```
  619. 1. rien
  620. 2. Boule de poils fait: "prrrrr"