test-ipython-notebook-nb-format-4.html 38 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8" />
  5. <title>test ipython notebook nb format 4</title>
  6. <link rel="stylesheet" href="http://example.com/test/theme/css/main.css" />
  7. <!--[if IE]>
  8. <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  9. <![endif]-->
  10. </head>
  11. <body id="index" class="home">
  12. <header id="banner" class="body">
  13. <h1><a href="http://example.com/test/">Testing site </a></h1>
  14. <nav><ul>
  15. <li class="active"><a href="http://example.com/test/category/misc.html">misc</a></li>
  16. </ul></nav>
  17. </header><!-- /#banner -->
  18. <section id="content" class="body">
  19. <article>
  20. <header>
  21. <h1 class="entry-title">
  22. <a href="http://example.com/test/test-ipython-notebook-nb-format-4.html" rel="bookmark"
  23. title="Permalink to test ipython notebook nb format 4">test ipython notebook nb format 4</a></h1>
  24. </header>
  25. <div class="entry-content">
  26. <footer class="post-info">
  27. <abbr class="published" title="2015-03-03T00:00:00+00:00">
  28. Published: mar. 03 mars 2015
  29. </abbr>
  30. <address class="vcard author">
  31. By <a class="url fn" href="http://example.com/test/author/testing-man.html">Testing Man</a>
  32. </address>
  33. <p>In <a href="http://example.com/test/category/misc.html">misc</a>. </p>
  34. </footer><!-- /.post-info --> <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
  35. tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At
  36. vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
  37. no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
  38. <h1>Loading a notebook nbformat = 4.0</h1>
  39. <p>
  40. <div class="cell border-box-sizing text_cell rendered">
  41. <div class="prompt input_prompt">
  42. </div>
  43. <div class="inner_cell">
  44. <div class="text_cell_render border-box-sizing rendered_html">
  45. <p>Il s’agit de repérer les données nécessaires voire indispensables à la
  46. résolution. Ces données peuvent être:</p>
  47. <ul>
  48. <li>numériques,</li>
  49. <li>ou sous forme de textes (on dit souvent chaînes de caractères),</li>
  50. <li>ou de type logique (à deux valeurs possibles, vrai ou faux).</li>
  51. </ul>
  52. <p>Pour affecter une valeur à une variable en python, la syntaxe est de la forme:</p>
  53. <pre><code>nom = valeur
  54. </code></pre><dl>
  55. <dt>Affectation</dt>
  56. <dd>Dans un programme, une affectation donne une valeur à une variable, elle est de la forme <code>v = e</code> avec <code>v</code> une variable et <code>e</code> une expression.
  57. </dd>
  58. </dl>
  59. <h1 id="valeurs-num-riques">Valeurs numériques</h1>
  60. <p>Python distingue les entiers(integers), des nombres à
  61. virgule(floating-point) par l&#39;ajout d&#39;une virgule:</p>
  62. </div>
  63. </div>
  64. </div>
  65. <div class="cell border-box-sizing code_cell rendered">
  66. <div class="input">
  67. <div class="prompt input_prompt">In&nbsp;[2]:</div>
  68. <div class="inner_cell">
  69. <div class="input_area">
  70. <div class="highlight-ipynb"><pre class="ipynb"><span class="n">a</span> <span class="o">=</span> <span class="mi">1</span>
  71. <span class="n">b</span> <span class="o">=</span> <span class="mf">1.0</span>
  72. <span class="k">print</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="nb">type</span><span class="p">(</span><span class="n">a</span><span class="p">),</span> <span class="n">b</span><span class="p">,</span> <span class="nb">type</span><span class="p">(</span><span class="n">b</span><span class="p">))</span>
  73. </pre></div>
  74. </div>
  75. </div>
  76. </div>
  77. <div class="output_wrapper">
  78. <div class="output">
  79. <div class="output_area"><div class="prompt"></div>
  80. <div class="output_subarea output_stream output_stdout output_text">
  81. <pre>
  82. 1 &lt;class &apos;int&apos;&gt; 1.0 &lt;class &apos;float&apos;&gt;
  83. </pre>
  84. </div>
  85. </div>
  86. </div>
  87. </div>
  88. </div>
  89. <div class="cell border-box-sizing text_cell rendered">
  90. <div class="prompt input_prompt">
  91. </div>
  92. <div class="inner_cell">
  93. <div class="text_cell_render border-box-sizing rendered_html">
  94. <p>Mais il implémente aussi des nombres plus exotiques tels que les
  95. décimaux, les fractions ou encore les nombres complexes</p>
  96. <h1 id="cha-nes-de-caract-res">Chaînes de caractères</h1>
  97. <p>En python3, il existe deux grands types de chaînes de caractères, les
  98. strings, et les bytes. Les strings sont simplement entourées par des
  99. guillemets simples ou doubles.</p>
  100. </div>
  101. </div>
  102. </div>
  103. <div class="cell border-box-sizing code_cell rendered">
  104. <div class="input">
  105. <div class="prompt input_prompt">In&nbsp;[3]:</div>
  106. <div class="inner_cell">
  107. <div class="input_area">
  108. <div class="highlight-ipynb"><pre class="ipynb"><span class="n">a</span> <span class="o">=</span> <span class="s">&#39;Mon texte&#39;</span>
  109. <span class="n">b</span> <span class="o">=</span> <span class="s">&quot;Mon deuxième texte&quot;</span>
  110. <span class="k">print</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="nb">type</span><span class="p">(</span><span class="n">a</span><span class="p">),</span> <span class="n">b</span><span class="p">,</span> <span class="nb">type</span><span class="p">(</span><span class="n">b</span><span class="p">))</span>
  111. </pre></div>
  112. </div>
  113. </div>
  114. </div>
  115. <div class="output_wrapper">
  116. <div class="output">
  117. <div class="output_area"><div class="prompt"></div>
  118. <div class="output_subarea output_stream output_stdout output_text">
  119. <pre>
  120. Mon texte &lt;class &apos;str&apos;&gt; Mon deuxième texte &lt;class &apos;str&apos;&gt;
  121. </pre>
  122. </div>
  123. </div>
  124. </div>
  125. </div>
  126. </div>
  127. <div class="cell border-box-sizing text_cell rendered">
  128. <div class="prompt input_prompt">
  129. </div>
  130. <div class="inner_cell">
  131. <div class="text_cell_render border-box-sizing rendered_html">
  132. <p>Les bytes sont précédées de la lettre b, il s&#39;agit de texte brut utilisé
  133. par la machine mais pas toujours lisible par un humain.</p>
  134. </div>
  135. </div>
  136. </div>
  137. <div class="cell border-box-sizing code_cell rendered">
  138. <div class="input">
  139. <div class="prompt input_prompt">In&nbsp;[4]:</div>
  140. <div class="inner_cell">
  141. <div class="input_area">
  142. <div class="highlight-ipynb"><pre class="ipynb"><span class="n">a</span> <span class="o">=</span> <span class="n">b</span><span class="s">&#39;Mon texte&#39;</span>
  143. <span class="k">print</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="nb">type</span><span class="p">(</span><span class="n">a</span><span class="p">))</span>
  144. </pre></div>
  145. </div>
  146. </div>
  147. </div>
  148. <div class="output_wrapper">
  149. <div class="output">
  150. <div class="output_area"><div class="prompt"></div>
  151. <div class="output_subarea output_stream output_stdout output_text">
  152. <pre>
  153. b&apos;Mon texte&apos; &lt;class &apos;bytes&apos;&gt;
  154. </pre>
  155. </div>
  156. </div>
  157. </div>
  158. </div>
  159. </div>
  160. <div class="cell border-box-sizing text_cell rendered">
  161. <div class="prompt input_prompt">
  162. </div>
  163. <div class="inner_cell">
  164. <div class="text_cell_render border-box-sizing rendered_html">
  165. <p>On ne peut représenter simplement que certains caractères(les caractères
  166. ASCII), les caractères accentués ne peuvent être écrits directement.</p>
  167. </div>
  168. </div>
  169. </div>
  170. <div class="cell border-box-sizing code_cell rendered">
  171. <div class="input">
  172. <div class="prompt input_prompt">In&nbsp;[5]:</div>
  173. <div class="inner_cell">
  174. <div class="input_area">
  175. <div class="highlight-ipynb"><pre class="ipynb"><span class="n">b</span> <span class="o">=</span> <span class="n">b</span><span class="s">&#39;Mon deuxième texte&#39;</span>
  176. </pre></div>
  177. </div>
  178. </div>
  179. </div>
  180. <div class="output_wrapper">
  181. <div class="output">
  182. <div class="output_area"><div class="prompt"></div>
  183. <div class="output_subarea output_text output_pyerr">
  184. <pre>
  185. <span class="ansicyan"> File </span><span class="ansigreen">&quot;&lt;ipython-input-5-b0bf0ef2715d&gt;&quot;</span><span class="ansicyan">, line </span><span class="ansigreen">1</span>
  186. <span class="ansiyellow"> b = b&apos;Mon deuxième texte&apos;</span>
  187. <span class="ansigrey"> ^</span>
  188. <span class="ansired">SyntaxError</span><span class="ansired">:</span> bytes can only contain ASCII literal characters.
  189. </pre>
  190. </div>
  191. </div>
  192. </div>
  193. </div>
  194. </div>
  195. <div class="cell border-box-sizing text_cell rendered">
  196. <div class="prompt input_prompt">
  197. </div>
  198. <div class="inner_cell">
  199. <div class="text_cell_render border-box-sizing rendered_html">
  200. <p>Un encodage autre que le ASCII doit être utilisé pour ces caractères,
  201. comme par exemple le UTF-8 qui est un codage sur huit bits très répandu.</p>
  202. </div>
  203. </div>
  204. </div>
  205. <div class="cell border-box-sizing code_cell rendered">
  206. <div class="input">
  207. <div class="prompt input_prompt">In&nbsp;[6]:</div>
  208. <div class="inner_cell">
  209. <div class="input_area">
  210. <div class="highlight-ipynb"><pre class="ipynb"><span class="n">b</span> <span class="o">=</span> <span class="n">b</span><span class="s">&#39;Mon deuxi</span><span class="se">\xc3\xa8</span><span class="s">me texte&#39;</span>
  211. <span class="k">print</span><span class="p">(</span><span class="n">b</span><span class="p">)</span>
  212. <span class="k">print</span><span class="p">(</span><span class="n">b</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s">&#39;utf-8&#39;</span><span class="p">))</span>
  213. </pre></div>
  214. </div>
  215. </div>
  216. </div>
  217. <div class="output_wrapper">
  218. <div class="output">
  219. <div class="output_area"><div class="prompt"></div>
  220. <div class="output_subarea output_stream output_stdout output_text">
  221. <pre>
  222. b&apos;Mon deuxi\xc3\xa8me texte&apos;
  223. Mon deuxième texte
  224. </pre>
  225. </div>
  226. </div>
  227. </div>
  228. </div>
  229. </div>
  230. <div class="cell border-box-sizing text_cell rendered">
  231. <div class="prompt input_prompt">
  232. </div>
  233. <div class="inner_cell">
  234. <div class="text_cell_render border-box-sizing rendered_html">
  235. <h1 id="valeurs-logiques">Valeurs logiques</h1>
  236. <p>On les appelle les booléens, il ne peuvent avoir que deux valeurs:</p>
  237. <ul>
  238. <li>VRAI ou FAUX: True ou False en anglais;</li>
  239. <li>1 ou 0.</li>
  240. </ul>
  241. <p>On les utilise pour réaliser des tests.</p>
  242. </div>
  243. </div>
  244. </div>
  245. <div class="cell border-box-sizing code_cell rendered">
  246. <div class="input">
  247. <div class="prompt input_prompt">In&nbsp;[7]:</div>
  248. <div class="inner_cell">
  249. <div class="input_area">
  250. <div class="highlight-ipynb"><pre class="ipynb"><span class="mi">1</span> <span class="o">&lt;</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">1</span> <span class="o">&gt;</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">2</span> <span class="o">&gt;=</span> <span class="mf">1.9</span><span class="p">,</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">2</span> <span class="o">!=</span> <span class="mi">2</span>
  251. </pre></div>
  252. </div>
  253. </div>
  254. </div>
  255. <div class="output_wrapper">
  256. <div class="output">
  257. <div class="output_area"><div class="prompt output_prompt">Out[7]:</div>
  258. <div class="output_text output_subarea output_pyout">
  259. <pre>
  260. (True, False, False, True, True, False)
  261. </pre>
  262. </div>
  263. </div>
  264. </div>
  265. </div>
  266. </div>
  267. <div class="cell border-box-sizing text_cell rendered">
  268. <div class="prompt input_prompt">
  269. </div>
  270. <div class="inner_cell">
  271. <div class="text_cell_render border-box-sizing rendered_html">
  272. <p>On peut aussi les utiliser pour savoir si une variable existe.</p>
  273. </div>
  274. </div>
  275. </div>
  276. <div class="cell border-box-sizing code_cell rendered">
  277. <div class="input">
  278. <div class="prompt input_prompt">In&nbsp;[8]:</div>
  279. <div class="inner_cell">
  280. <div class="input_area">
  281. <div class="highlight-ipynb"><pre class="ipynb"><span class="nb">bool</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
  282. </pre></div>
  283. </div>
  284. </div>
  285. </div>
  286. <div class="output_wrapper">
  287. <div class="output">
  288. <div class="output_area"><div class="prompt output_prompt">Out[8]:</div>
  289. <div class="output_text output_subarea output_pyout">
  290. <pre>
  291. True
  292. </pre>
  293. </div>
  294. </div>
  295. </div>
  296. </div>
  297. </div>
  298. <div class="cell border-box-sizing text_cell rendered">
  299. <div class="prompt input_prompt">
  300. </div>
  301. <div class="inner_cell">
  302. <div class="text_cell_render border-box-sizing rendered_html">
  303. <p>On peut aussi combiner plusieurs tests avec les opérateurs booléens <code>and</code>, <code>or</code> et <code>not</code>.</p>
  304. </div>
  305. </div>
  306. </div>
  307. <div class="cell border-box-sizing code_cell rendered">
  308. <div class="input">
  309. <div class="prompt input_prompt">In&nbsp;[9]:</div>
  310. <div class="inner_cell">
  311. <div class="input_area">
  312. <div class="highlight-ipynb"><pre class="ipynb"><span class="mi">1</span> <span class="o">&lt;</span> <span class="mi">2</span> <span class="ow">or</span> <span class="mi">2</span> <span class="o">&lt;</span> <span class="mi">1</span>
  313. </pre></div>
  314. </div>
  315. </div>
  316. </div>
  317. <div class="output_wrapper">
  318. <div class="output">
  319. <div class="output_area"><div class="prompt output_prompt">Out[9]:</div>
  320. <div class="output_text output_subarea output_pyout">
  321. <pre>
  322. True
  323. </pre>
  324. </div>
  325. </div>
  326. </div>
  327. </div>
  328. </div>
  329. <div class="cell border-box-sizing code_cell rendered">
  330. <div class="input">
  331. <div class="prompt input_prompt">In&nbsp;[10]:</div>
  332. <div class="inner_cell">
  333. <div class="input_area">
  334. <div class="highlight-ipynb"><pre class="ipynb"><span class="mi">1</span> <span class="o">&lt;</span> <span class="mi">2</span> <span class="ow">and</span> <span class="mi">2</span> <span class="o">&lt;</span> <span class="mi">1</span>
  335. </pre></div>
  336. </div>
  337. </div>
  338. </div>
  339. <div class="output_wrapper">
  340. <div class="output">
  341. <div class="output_area"><div class="prompt output_prompt">Out[10]:</div>
  342. <div class="output_text output_subarea output_pyout">
  343. <pre>
  344. False
  345. </pre>
  346. </div>
  347. </div>
  348. </div>
  349. </div>
  350. </div>
  351. <div class="cell border-box-sizing code_cell rendered">
  352. <div class="input">
  353. <div class="prompt input_prompt">In&nbsp;[11]:</div>
  354. <div class="inner_cell">
  355. <div class="input_area">
  356. <div class="highlight-ipynb"><pre class="ipynb"><span class="ow">not</span><span class="p">(</span><span class="mi">1</span> <span class="o">&lt;</span> <span class="mi">2</span> <span class="ow">and</span> <span class="mi">2</span> <span class="o">&lt;</span> <span class="mi">1</span><span class="p">)</span>
  357. </pre></div>
  358. </div>
  359. </div>
  360. </div>
  361. <div class="output_wrapper">
  362. <div class="output">
  363. <div class="output_area"><div class="prompt output_prompt">Out[11]:</div>
  364. <div class="output_text output_subarea output_pyout">
  365. <pre>
  366. True
  367. </pre>
  368. </div>
  369. </div>
  370. </div>
  371. </div>
  372. </div>
  373. <div class="cell border-box-sizing text_cell rendered">
  374. <div class="prompt input_prompt">
  375. </div>
  376. <div class="inner_cell">
  377. <div class="text_cell_render border-box-sizing rendered_html">
  378. <h1 id="listes-et-dictionnaires">Listes et dictionnaires</h1>
  379. <p>Souvent les données pertinentes doivent être agencées sous une forme
  380. plus vaste, comme par exemple des listes où on peut ranger de façon ordonnée <em>plusieurs valeurs</em>.</p>
  381. <h2 id="listes">Listes</h2>
  382. <p>Les listes sont des collections <em>ordonnées de valeurs</em>, elles sont
  383. entourées par des crochets <code>[]</code>, leurs éléments sont séparés par des
  384. virgules.</p>
  385. </div>
  386. </div>
  387. </div>
  388. <div class="cell border-box-sizing code_cell rendered">
  389. <div class="input">
  390. <div class="prompt input_prompt">In&nbsp;[12]:</div>
  391. <div class="inner_cell">
  392. <div class="input_area">
  393. <div class="highlight-ipynb"><pre class="ipynb"><span class="n">a</span> <span class="o">=</span> <span class="p">[</span> <span class="mi">1</span><span class="p">,</span> <span class="s">&#39;deux&#39;</span> <span class="p">,</span> <span class="mi">3</span><span class="p">]</span>
  394. <span class="nb">type</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
  395. </pre></div>
  396. </div>
  397. </div>
  398. </div>
  399. <div class="output_wrapper">
  400. <div class="output">
  401. <div class="output_area"><div class="prompt output_prompt">Out[12]:</div>
  402. <div class="output_text output_subarea output_pyout">
  403. <pre>
  404. list
  405. </pre>
  406. </div>
  407. </div>
  408. </div>
  409. </div>
  410. </div>
  411. <div class="cell border-box-sizing text_cell rendered">
  412. <div class="prompt input_prompt">
  413. </div>
  414. <div class="inner_cell">
  415. <div class="text_cell_render border-box-sizing rendered_html">
  416. <p>On peut facilement accéder à la longueur de la liste grace à la fonction
  417. <code>len</code> et à chacun de ces éléments grâce à leur index <em>(Attention le
  418. premier élement à l&#39;index 0)</em></p>
  419. </div>
  420. </div>
  421. </div>
  422. <div class="cell border-box-sizing code_cell rendered">
  423. <div class="input">
  424. <div class="prompt input_prompt">In&nbsp;[13]:</div>
  425. <div class="inner_cell">
  426. <div class="input_area">
  427. <div class="highlight-ipynb"><pre class="ipynb"><span class="nb">len</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
  428. </pre></div>
  429. </div>
  430. </div>
  431. </div>
  432. <div class="output_wrapper">
  433. <div class="output">
  434. <div class="output_area"><div class="prompt output_prompt">Out[13]:</div>
  435. <div class="output_text output_subarea output_pyout">
  436. <pre>
  437. 3
  438. </pre>
  439. </div>
  440. </div>
  441. </div>
  442. </div>
  443. </div>
  444. <div class="cell border-box-sizing code_cell rendered">
  445. <div class="input">
  446. <div class="prompt input_prompt">In&nbsp;[14]:</div>
  447. <div class="inner_cell">
  448. <div class="input_area">
  449. <div class="highlight-ipynb"><pre class="ipynb"><span class="n">a</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">a</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
  450. </pre></div>
  451. </div>
  452. </div>
  453. </div>
  454. <div class="output_wrapper">
  455. <div class="output">
  456. <div class="output_area"><div class="prompt output_prompt">Out[14]:</div>
  457. <div class="output_text output_subarea output_pyout">
  458. <pre>
  459. (1, 3)
  460. </pre>
  461. </div>
  462. </div>
  463. </div>
  464. </div>
  465. </div>
  466. <div class="cell border-box-sizing text_cell rendered">
  467. <div class="prompt input_prompt">
  468. </div>
  469. <div class="inner_cell">
  470. <div class="text_cell_render border-box-sizing rendered_html">
  471. <p>On peut inversement connaître l&#39;indice correspondant à une valeur grâce à l&#39;attribut <code>index</code>.</p>
  472. </div>
  473. </div>
  474. </div>
  475. <div class="cell border-box-sizing code_cell rendered">
  476. <div class="input">
  477. <div class="prompt input_prompt">In&nbsp;[15]:</div>
  478. <div class="inner_cell">
  479. <div class="input_area">
  480. <div class="highlight-ipynb"><pre class="ipynb"><span class="n">a</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> <span class="n">a</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s">&#39;deux&#39;</span><span class="p">),</span> <span class="n">a</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
  481. </pre></div>
  482. </div>
  483. </div>
  484. </div>
  485. <div class="output_wrapper">
  486. <div class="output">
  487. <div class="output_area"><div class="prompt output_prompt">Out[15]:</div>
  488. <div class="output_text output_subarea output_pyout">
  489. <pre>
  490. (0, 1, 2)
  491. </pre>
  492. </div>
  493. </div>
  494. </div>
  495. </div>
  496. </div>
  497. <div class="cell border-box-sizing text_cell rendered">
  498. <div class="prompt input_prompt">
  499. </div>
  500. <div class="inner_cell">
  501. <div class="text_cell_render border-box-sizing rendered_html">
  502. <h2 id="dictionnaires">Dictionnaires</h2>
  503. <p>Dans un dictionnaire les valeurs de la collection ne sont pas repéré par
  504. un index, mais par une <em>clé</em>. Les dictionnaires sont entourés d&#39;accolades <code>{}</code>.</p>
  505. </div>
  506. </div>
  507. </div>
  508. <div class="cell border-box-sizing code_cell rendered">
  509. <div class="input">
  510. <div class="prompt input_prompt">In&nbsp;[16]:</div>
  511. <div class="inner_cell">
  512. <div class="input_area">
  513. <div class="highlight-ipynb"><pre class="ipynb"><span class="n">a</span> <span class="o">=</span> <span class="p">{</span> <span class="s">&#39;nom&#39;</span><span class="p">:</span> <span class="s">&#39;Doe&#39;</span> <span class="p">,</span> <span class="s">&#39;prenom&#39;</span><span class="p">:</span> <span class="s">&#39;John&#39;</span><span class="p">,</span> <span class="s">&#39;age&#39;</span><span class="p">:</span> <span class="mi">77</span> <span class="p">}</span>
  514. <span class="nb">type</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
  515. </pre></div>
  516. </div>
  517. </div>
  518. </div>
  519. <div class="output_wrapper">
  520. <div class="output">
  521. <div class="output_area"><div class="prompt output_prompt">Out[16]:</div>
  522. <div class="output_text output_subarea output_pyout">
  523. <pre>
  524. dict
  525. </pre>
  526. </div>
  527. </div>
  528. </div>
  529. </div>
  530. </div>
  531. <div class="cell border-box-sizing text_cell rendered">
  532. <div class="prompt input_prompt">
  533. </div>
  534. <div class="inner_cell">
  535. <div class="text_cell_render border-box-sizing rendered_html">
  536. <p>Pour accéder aux éléments du dictionnaire, il suffit d&#39;appeler la clé
  537. correspondante, d&#39;autres part la fonction <code>len</code> est égalemnt disponible.</p>
  538. </div>
  539. </div>
  540. </div>
  541. <div class="cell border-box-sizing code_cell rendered">
  542. <div class="input">
  543. <div class="prompt input_prompt">In&nbsp;[17]:</div>
  544. <div class="inner_cell">
  545. <div class="input_area">
  546. <div class="highlight-ipynb"><pre class="ipynb"><span class="nb">len</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
  547. </pre></div>
  548. </div>
  549. </div>
  550. </div>
  551. <div class="output_wrapper">
  552. <div class="output">
  553. <div class="output_area"><div class="prompt output_prompt">Out[17]:</div>
  554. <div class="output_text output_subarea output_pyout">
  555. <pre>
  556. 3
  557. </pre>
  558. </div>
  559. </div>
  560. </div>
  561. </div>
  562. </div>
  563. <div class="cell border-box-sizing code_cell rendered">
  564. <div class="input">
  565. <div class="prompt input_prompt">In&nbsp;[18]:</div>
  566. <div class="inner_cell">
  567. <div class="input_area">
  568. <div class="highlight-ipynb"><pre class="ipynb"><span class="n">a</span><span class="p">[</span><span class="s">&#39;nom&#39;</span><span class="p">],</span> <span class="n">a</span><span class="p">[</span><span class="s">&#39;age&#39;</span><span class="p">]</span>
  569. </pre></div>
  570. </div>
  571. </div>
  572. </div>
  573. <div class="output_wrapper">
  574. <div class="output">
  575. <div class="output_area"><div class="prompt output_prompt">Out[18]:</div>
  576. <div class="output_text output_subarea output_pyout">
  577. <pre>
  578. (&apos;Doe&apos;, 77)
  579. </pre>
  580. </div>
  581. </div>
  582. </div>
  583. </div>
  584. </div>
  585. <div class="cell border-box-sizing text_cell rendered">
  586. <div class="prompt input_prompt">
  587. </div>
  588. <div class="inner_cell">
  589. <div class="text_cell_render border-box-sizing rendered_html">
  590. <h2 id="modification-des-listes-et-dictionnaires">Modification des listes et dictionnaires</h2>
  591. <p>Les listes et dictionnaires sont des objets <strong>mutables</strong>, c&#39;est à dire que l&#39;on peut modifier leur contenu sans créer un nouvel objet. On dit qu&#39;il s&#39;agit de données <a href="http://fr.wikipedia.org/wiki/Persistance_%28informatique%29">non-persistantes</a>.</p>
  592. </div>
  593. </div>
  594. </div>
  595. <div class="cell border-box-sizing code_cell rendered">
  596. <div class="input">
  597. <div class="prompt input_prompt">In&nbsp;[19]:</div>
  598. <div class="inner_cell">
  599. <div class="input_area">
  600. <div class="highlight-ipynb"><pre class="ipynb"><span class="c"># Valeurs initiales</span>
  601. <span class="n">liste</span> <span class="o">=</span> <span class="p">[</span> <span class="mi">1</span><span class="p">,</span> <span class="s">&#39;deux&#39;</span> <span class="p">,</span> <span class="mi">3</span><span class="p">]</span>
  602. <span class="nb">dict</span> <span class="o">=</span> <span class="p">{</span> <span class="s">&#39;nom&#39;</span><span class="p">:</span> <span class="s">&#39;Doe&#39;</span> <span class="p">,</span> <span class="s">&#39;prenom&#39;</span><span class="p">:</span> <span class="s">&#39;John&#39;</span><span class="p">,</span> <span class="s">&#39;age&#39;</span><span class="p">:</span> <span class="mi">77</span> <span class="p">}</span>
  603. <span class="k">print</span><span class="p">(</span><span class="s">&quot;Valeurs initiales:</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">liste</span><span class="p">,</span> <span class="nb">dict</span><span class="p">)</span>
  604. <span class="c"># Modification des valeurs par assignation</span>
  605. <span class="n">liste</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="mi">2</span>
  606. <span class="nb">dict</span><span class="p">[</span><span class="s">&#39;age&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">17</span>
  607. <span class="k">print</span><span class="p">(</span><span class="s">&quot;Modification des valeurs par assignation:</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">liste</span><span class="p">,</span> <span class="nb">dict</span><span class="p">)</span>
  608. <span class="c"># Ajout d&#39;éléments</span>
  609. <span class="n">liste</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
  610. <span class="nb">dict</span><span class="p">[</span><span class="s">&#39;nationalité&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s">&#39;française&#39;</span>
  611. <span class="k">print</span><span class="p">(</span><span class="s">&quot;Ajout d&#39;éléments:</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">liste</span><span class="p">,</span> <span class="nb">dict</span><span class="p">)</span>
  612. <span class="c"># Suppression d&#39;éléments</span>
  613. <span class="n">liste</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
  614. <span class="nb">dict</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s">&#39;age&#39;</span><span class="p">)</span>
  615. <span class="k">print</span><span class="p">(</span><span class="s">&quot;Suppression d&#39;éléments:</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">liste</span><span class="p">,</span> <span class="nb">dict</span><span class="p">)</span>
  616. </pre></div>
  617. </div>
  618. </div>
  619. </div>
  620. <div class="output_wrapper">
  621. <div class="output">
  622. <div class="output_area"><div class="prompt"></div>
  623. <div class="output_subarea output_stream output_stdout output_text">
  624. <pre>
  625. Valeurs initiales:
  626. [1, &apos;deux&apos;, 3] {&apos;age&apos;: 77, &apos;nom&apos;: &apos;Doe&apos;, &apos;prenom&apos;: &apos;John&apos;}
  627. Modification des valeurs par assignation:
  628. [1, 2, 3] {&apos;age&apos;: 17, &apos;nom&apos;: &apos;Doe&apos;, &apos;prenom&apos;: &apos;John&apos;}
  629. Ajout d&apos;éléments:
  630. [1, 2, 3, 4] {&apos;age&apos;: 17, &apos;nom&apos;: &apos;Doe&apos;, &apos;nationalité&apos;: &apos;française&apos;, &apos;prenom&apos;: &apos;John&apos;}
  631. Suppression d&apos;éléments:
  632. [2, 3, 4] {&apos;nom&apos;: &apos;Doe&apos;, &apos;nationalité&apos;: &apos;française&apos;, &apos;prenom&apos;: &apos;John&apos;}
  633. </pre>
  634. </div>
  635. </div>
  636. </div>
  637. </div>
  638. </div>
  639. <div class="cell border-box-sizing text_cell rendered">
  640. <div class="prompt input_prompt">
  641. </div>
  642. <div class="inner_cell">
  643. <div class="text_cell_render border-box-sizing rendered_html">
  644. <p>Si on a besoin de modifier une liste ou un dictionnaire, mais que l&#39;on veut garder une trace des objets initiaux, il faut commencer par en créer une <strong>copie</strong>, il ne suffit pas de créer une variable suplémentaire sans quoi cette variable serait elle aussi modifiée si l&#39;objet initial changeait: l&#39;assignation est dite par <strong>référence</strong> dans ce cas.</p>
  645. </div>
  646. </div>
  647. </div>
  648. <div class="cell border-box-sizing code_cell rendered">
  649. <div class="input">
  650. <div class="prompt input_prompt">In&nbsp;[20]:</div>
  651. <div class="inner_cell">
  652. <div class="input_area">
  653. <div class="highlight-ipynb"><pre class="ipynb"><span class="c"># Valeurs initiales</span>
  654. <span class="n">L</span> <span class="o">=</span> <span class="p">[</span> <span class="mi">1</span><span class="p">,</span> <span class="s">&#39;deux&#39;</span> <span class="p">,</span> <span class="mi">3</span><span class="p">]</span>
  655. <span class="k">print</span><span class="p">(</span><span class="s">&quot;Valeurs initiales:</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">L</span><span class="p">)</span>
  656. <span class="c"># Création d&#39;une référencxe à la liste par simple assignation</span>
  657. <span class="n">L_ref</span> <span class="o">=</span> <span class="n">L</span>
  658. <span class="c"># Création d&#39;une copie de la liste</span>
  659. <span class="n">L_copie</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">L</span><span class="p">)</span>
  660. <span class="c"># Modification de la liste initiale</span>
  661. <span class="n">L</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="mi">2</span>
  662. <span class="k">print</span><span class="p">(</span><span class="s">&quot;Modification de la liste L:&quot;</span><span class="p">)</span>
  663. <span class="k">print</span><span class="p">(</span><span class="s">&quot;La liste L a bien, été modifiée:&quot;</span><span class="p">,</span> <span class="n">L</span><span class="p">)</span>
  664. <span class="k">print</span><span class="p">(</span><span class="s">&quot;La liste L_ref a aussi été modifiée car il s&#39;agit juste d&#39;une référence vers la liste L:&quot;</span><span class="p">,</span> <span class="n">L_ref</span><span class="p">)</span>
  665. <span class="k">print</span><span class="p">(</span><span class="s">&quot;La copie L_copie n&#39;a pas été modifiée:&quot;</span><span class="p">,</span> <span class="n">L_copie</span><span class="p">)</span>
  666. </pre></div>
  667. </div>
  668. </div>
  669. </div>
  670. <div class="output_wrapper">
  671. <div class="output">
  672. <div class="output_area"><div class="prompt"></div>
  673. <div class="output_subarea output_stream output_stdout output_text">
  674. <pre>
  675. Valeurs initiales:
  676. [1, &apos;deux&apos;, 3]
  677. Modification de la liste L:
  678. La liste L a bien, été modifiée: [1, 2, 3]
  679. La liste L_ref a aussi été modifiée car il s&apos;agit juste d&apos;une référence vers la liste L: [1, 2, 3]
  680. La copie L_copie n&apos;a pas été modifiée: [1, &apos;deux&apos;, 3]
  681. </pre>
  682. </div>
  683. </div>
  684. </div>
  685. </div>
  686. </div>
  687. <div class="cell border-box-sizing text_cell rendered">
  688. <div class="prompt input_prompt">
  689. </div>
  690. <div class="inner_cell">
  691. <div class="text_cell_render border-box-sizing rendered_html">
  692. <h1 id="entr-e-des-donn-es">Entrée des données</h1>
  693. <p>Dans cette phase peut aussi figurer ce qu’on appelle l’entrée des
  694. données, qui peut se manifester par la saisie de caractères ou de
  695. nombres sur le clavier, ou la lecture de la position du pointeur de la
  696. souris, ou encore par la lecture d’un fichier contenant ces nombres ou
  697. caractères.</p>
  698. <p>Il s’agit aussi de repérer les résultats intermédiaires qu’il est bon de
  699. mémoriser pour la suite car indispensables au traitement.</p>
  700. <p>Il est parfois utile d’utiliser des variables auxiliaires pour ne pas
  701. perturber les données initiales.</p>
  702. <h2 id="entr-e-des-donn-es-au-clavier">Entrée des données au clavier</h2>
  703. </div>
  704. </div>
  705. </div>
  706. <div class="cell border-box-sizing code_cell rendered">
  707. <div class="input">
  708. <div class="prompt input_prompt">In&nbsp;[21]:</div>
  709. <div class="inner_cell">
  710. <div class="input_area">
  711. <div class="highlight-ipynb"><pre class="ipynb"><span class="n">chiffre</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="s">&quot;Entrer la valeur du chiffre souhaité: &quot;</span><span class="p">)</span>
  712. </pre></div>
  713. </div>
  714. </div>
  715. </div>
  716. <div class="output_wrapper">
  717. <div class="output">
  718. <div class="output_area"><div class="prompt"></div>
  719. <div class="output_subarea output_stream output_stdout output_text">
  720. <pre>
  721. Entrer la valeur du chiffre souhaité: 7
  722. </pre>
  723. </div>
  724. </div>
  725. </div>
  726. </div>
  727. </div>
  728. <div class="cell border-box-sizing code_cell rendered">
  729. <div class="input">
  730. <div class="prompt input_prompt">In&nbsp;[22]:</div>
  731. <div class="inner_cell">
  732. <div class="input_area">
  733. <div class="highlight-ipynb"><pre class="ipynb"><span class="k">print</span><span class="p">(</span><span class="n">chiffre</span><span class="p">)</span>
  734. </pre></div>
  735. </div>
  736. </div>
  737. </div>
  738. <div class="output_wrapper">
  739. <div class="output">
  740. <div class="output_area"><div class="prompt"></div>
  741. <div class="output_subarea output_stream output_stdout output_text">
  742. <pre>
  743. 7
  744. </pre>
  745. </div>
  746. </div>
  747. </div>
  748. </div>
  749. </div>
  750. <div class="cell border-box-sizing text_cell rendered">
  751. <div class="prompt input_prompt">
  752. </div>
  753. <div class="inner_cell">
  754. <div class="text_cell_render border-box-sizing rendered_html">
  755. <p>Attention cependant, cette valeur est une chaîne de caractère, et les opérations sont celles des <code>string</code>s.</p>
  756. </div>
  757. </div>
  758. </div>
  759. <div class="cell border-box-sizing code_cell rendered">
  760. <div class="input">
  761. <div class="prompt input_prompt">In&nbsp;[23]:</div>
  762. <div class="inner_cell">
  763. <div class="input_area">
  764. <div class="highlight-ipynb"><pre class="ipynb"><span class="k">print</span><span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="n">chiffre</span><span class="p">))</span>
  765. <span class="n">chiffre</span><span class="o">*</span><span class="mi">10</span>
  766. </pre></div>
  767. </div>
  768. </div>
  769. </div>
  770. <div class="output_wrapper">
  771. <div class="output">
  772. <div class="output_area"><div class="prompt"></div>
  773. <div class="output_subarea output_stream output_stdout output_text">
  774. <pre>
  775. &lt;class &apos;str&apos;&gt;
  776. </pre>
  777. </div>
  778. </div>
  779. <div class="output_area"><div class="prompt output_prompt">Out[23]:</div>
  780. <div class="output_text output_subarea output_pyout">
  781. <pre>
  782. &apos;7777777777&apos;
  783. </pre>
  784. </div>
  785. </div>
  786. </div>
  787. </div>
  788. </div>
  789. <div class="cell border-box-sizing text_cell rendered">
  790. <div class="prompt input_prompt">
  791. </div>
  792. <div class="inner_cell">
  793. <div class="text_cell_render border-box-sizing rendered_html">
  794. <p>Il convient de la convertir un nombre entier ou flottant avant d&#39;utiliser la valeur.</p>
  795. </div>
  796. </div>
  797. </div>
  798. <div class="cell border-box-sizing code_cell rendered">
  799. <div class="input">
  800. <div class="prompt input_prompt">In&nbsp;[24]:</div>
  801. <div class="inner_cell">
  802. <div class="input_area">
  803. <div class="highlight-ipynb"><pre class="ipynb"><span class="n">chiffre</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">chiffre</span><span class="p">)</span>
  804. <span class="mi">10</span><span class="o">*</span><span class="n">chiffre</span>
  805. </pre></div>
  806. </div>
  807. </div>
  808. </div>
  809. <div class="output_wrapper">
  810. <div class="output">
  811. <div class="output_area"><div class="prompt output_prompt">Out[24]:</div>
  812. <div class="output_text output_subarea output_pyout">
  813. <pre>
  814. 70
  815. </pre>
  816. </div>
  817. </div>
  818. </div>
  819. </div>
  820. </div>
  821. <div class="cell border-box-sizing text_cell rendered">
  822. <div class="prompt input_prompt">
  823. </div>
  824. <div class="inner_cell">
  825. <div class="text_cell_render border-box-sizing rendered_html">
  826. <h2 id="lecture-d-un-fichier">Lecture d&#39;un fichier</h2>
  827. <p>Voici par exemple comment ouvrir et lire un fichier appelé <code>lorem.txt</code>
  828. contenu dans le répértoire <code>data</code> du dossier courant.</p>
  829. </div>
  830. </div>
  831. </div>
  832. <div class="cell border-box-sizing code_cell rendered">
  833. <div class="input">
  834. <div class="prompt input_prompt">In&nbsp;[27]:</div>
  835. <div class="inner_cell">
  836. <div class="input_area">
  837. <div class="highlight-ipynb"><pre class="ipynb"><span class="n">fichier</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s">&#39;data/lorem.txt&#39;</span><span class="p">)</span>
  838. <span class="n">fichier</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
  839. </pre></div>
  840. </div>
  841. </div>
  842. </div>
  843. <div class="output_wrapper">
  844. <div class="output">
  845. <div class="output_area"><div class="prompt output_prompt">Out[27]:</div>
  846. <div class="output_text output_subarea output_pyout">
  847. <pre>
  848. &apos;Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod\ntempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At\nvero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,\nno sea takimata sanctus est Lorem ipsum dolor sit amet.\n&apos;
  849. </pre>
  850. </div>
  851. </div>
  852. </div>
  853. </div>
  854. </div>
  855. <div class="cell border-box-sizing text_cell rendered">
  856. <div class="prompt input_prompt">
  857. </div>
  858. <div class="inner_cell">
  859. <div class="text_cell_render border-box-sizing rendered_html">
  860. <p>Dans la sortie précédente, les caractères <code>\n</code> représentent les sauts de
  861. ligne, on peut aussi lire le fichier ligne par ligne.</p>
  862. </div>
  863. </div>
  864. </div>
  865. <div class="cell border-box-sizing code_cell rendered">
  866. <div class="input">
  867. <div class="prompt input_prompt">In&nbsp;[29]:</div>
  868. <div class="inner_cell">
  869. <div class="input_area">
  870. <div class="highlight-ipynb"><pre class="ipynb"><span class="n">fichier</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s">&#39;data/lorem.txt&#39;</span><span class="p">)</span>
  871. <span class="n">fichier</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
  872. </pre></div>
  873. </div>
  874. </div>
  875. </div>
  876. <div class="output_wrapper">
  877. <div class="output">
  878. <div class="output_area"><div class="prompt output_prompt">Out[29]:</div>
  879. <div class="output_text output_subarea output_pyout">
  880. <pre>
  881. &apos;Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod\n&apos;
  882. </pre>
  883. </div>
  884. </div>
  885. </div>
  886. </div>
  887. </div></p>
  888. </div><!-- /.entry-content -->
  889. </article>
  890. </section>
  891. <section id="extras" class="body">
  892. </section><!-- /#extras -->
  893. <footer id="contentinfo" class="body">
  894. <address id="about" class="vcard body">
  895. Proudly powered by <a href="http://getpelican.com/">Pelican</a>, which takes great advantage of <a href="http://python.org">Python</a>.
  896. </address><!-- /#about -->
  897. <p>The theme is by <a href="http://coding.smashingmagazine.com/2009/08/04/designing-a-html-5-layout-from-scratch/">Smashing Magazine</a>, thanks!</p>
  898. </footer><!-- /#contentinfo -->
  899. </body>
  900. </html>