{"id":4622,"date":"2012-06-18T19:59:43","date_gmt":"2012-06-18T23:59:43","guid":{"rendered":"http:\/\/cscircles.cemc.uwaterloo.ca\/?page_id=4622"},"modified":"2015-04-12T22:49:38","modified_gmt":"2015-04-13T02:49:38","slug":"3-fr","status":"publish","type":"page","link":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/3-fr\/","title":{"rendered":"3: Commentaires et guillemets"},"content":{"rendered":"<!-- Please retain this notice and add more notes if you create a new version.<br \/>\nMain French translator: Brice Canvel, brice.canvel@gmail.com<br \/>\nOther translator: Andr\u00e9 Roberge, andre.roberge@gmail.com<br \/>\nOriginal lesson author: David Pritchard, daveagp@gmail.com<br \/>\nLicense: http:\/\/creativecommons.org\/licenses\/by-nc-sa\/3.0\/<br \/>\nFor the full site, visit http:\/\/cscircles.ca-->\n<p>Un programme informatique ressemble \u00e0 un langage cod\u00e9, ce qui est n\u00e9cessaire pour que l'ordinateur comprenne pr\u00e9cis\u00e9ment ce que vos commandes signifient. Mais, \u00e9tant un langage cod\u00e9, il est difficile pour les humains de le lire. Pour compenser ce probl\u00e8me, vous \u00eates autoris\u00e9s \u00e0 \u00e9crire des notes dans votre programme que l'ordinateur ignore. Ces notes s'appellent des <strong>commentaires<\/strong>.<\/p>\n<p>En Python, une ligne d'instructions qui contient le symbole\u00a0<code><code>#<\/code><\/code>\u00a0(<em>di\u00e8se<\/em>) signifie un commentaire. Le reste de la ligne sera ignor\u00e9 quand le programme sera ex\u00e9cut\u00e9. Voici un exemple.<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform0\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox0'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div>Effet d'un commentaire.<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 84px;'><textarea wrap='off' name='usercode0' id='usercode0'  cols=10 rows=3 readonly='readonly'  style = 'height : 84px;'  class='pyboxCode RO'>\nprint(1) # voici un commentaire\n# print(2)\nprint(3) # un autre commentaire @!#!@$<\/textarea><\/div>\n<div id='pbhistory0' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit0' value=' '\/><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse0\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"0\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"edaf99c0078e0b3788ff23ac54c7057a\"\/>\n<div id='pbresults0' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit0\").value = \"Run program\";document.getElementById(\"inputInUse0\").value = \"N\";<\/script>\n<\/p>\n<p>Comme la seconde ligne de code commence avec le signe\u00a0<code>#<\/code>, Python ignore compl\u00e8tement cette ligne, et comme vous pouvez le voir, le nombre\u00a0<code>2<\/code> n'est pas affich\u00e9. Les utilisations courantes pour les commentaires sont:<\/p>\n<ul>\n<li>Expliquer des parties du programme, pour vous ou pour d'autres personnes qui le liront plus tard;<\/li>\n<li>laisser des notes \"\u00e0 faire\" pendant que vous \u00e9crivez le programme;<\/li>\n<li>d\u00e9sactiver temporairement (<em>commenter<\/em>) une ligne de votre programme sans l'effacer compl\u00e8tement afin qu'il soit plus facile de la remettre plus tard.<\/li>\n<\/ul>\n<p>Voici un exercice d'illustration. Si vous \u00e9ditez trop votre code et que vous voulez revenir \u00e0 la version originale, s\u00e9lectionnez\u00a0<strong>R\u00e9initialiser code.<\/strong><\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform1\" method=\"POST\">\n<div class='pybox modeNeutral ' id='pybox1'>\n<img title='You have not yet completed this problem.' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/icon.png' class='pycheck'\/><div class=\"heading\"><span class='type'>Coding Exercise: <\/span><span class='title'>Service secondeaire<\/span><\/div> D\u00e9boguez ce programme afin\u00a0qu'il \u00e9crive le nombre de secondes dans une semaine.<div class=\"helpOuter\" style=\"display: none;\"><div class=\"helpInner\"><div style=\"text-align: center\">You need to create an account and log in to ask a question.<\/div><\/div><\/div><div class='pyboxTextwrap pyboxCodewrap RW resizy'  style='height: 526px;'><textarea wrap='off' name='usercode1' id='usercode1'  cols=10 rows=20   class='pyboxCode RW'>\n# but: imprimons le nombre de secondes dans une semaine\nsecondesParMinute = 60\nsecondesParHeure = secondesParMinute * 50 # \u00e0 faire: verifier!\nsecondesParJour = secondesParHeure * 24\njoursParSemaine = 5\n# joursParSemaine = joursParSemaine + 2 # week-ends sont d\u00e9sactiv\u00e9s?\nprint(secondesParJour * joursParSemaine)\n<\/textarea><\/div>\n<div id='pbhistory1' class='flexcontain' style='display:none;'><\/div>\n<input type='hidden' id='defaultCode1' value='# but: imprimons le nombre de secondes dans une semaine\\nsecondesParMinute = 60\\nsecondesParHeure = secondesParMinute * 50 # \\u00e0 faire: verifier!\\nsecondesParJour = secondesParHeure * 24\\njoursParSemaine = 5\\n# joursParSemaine = joursParSemaine + 2 # week-ends sont d\\u00e9sactiv\\u00e9s?\\nprint(secondesParJour * joursParSemaine)\\n'><\/input>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit1' value=' '\/><\/td>\n<td><input type='button' name='history' value=\"History\" onclick=\"historyClick(1,'3.debug')\" ><\/td>\n<td><input type='button' name='default' value=\"Reset code to default\" onclick=\"pbSetText(1,descape($('#defaultCode1').val()))\" ><\/td>\n<td><input type='button' name='help' value=\"Help\" onclick=\"helpClick(1);\" ><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse1\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"1\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"27134c03272985b71a21c4a12c4800aa\"\/>\n<div id='pbresults1' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit1\").value = \"Run program\";document.getElementById(\"inputInUse1\").value = \"N\";<\/script>\n<\/p>\n<h2>Cha\u00eenes de caract\u00e8res<\/h2>\n<p><strong>Les cha\u00eenes de caract\u00e8res<\/strong>\u00a0(ou cha\u00eenes) sont des s\u00e9quences de lettres et de nombres, ou, en d'autres termes, des morceaux de textes. Elles sont entour\u00e9es par deux guillemets: par exemple, dans la <a href=\"\/0-fr\/\">le\u00e7on 0<\/a>, la partie\u00a0<code>\"Bonjour, Python !\"<\/code>\u00a0du premier programme \u00e9tait une cha\u00eene de caract\u00e8res. Si un di\u00e8se\u00a0<code>#<\/code>\u00a0appara\u00eet dans une cha\u00eene de caract\u00e8res, il n'est pas consid\u00e9r\u00e9 comme indiquant un commentaire:<br \/>\n<form class=\"pbform\" action=\"#\" id=\"pbform2\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox2'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div>Une cha\u00eene de caract\u00e8res contenant le signe <code>#<\/code>.<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 58px;'><textarea wrap='off' name='usercode2' id='usercode2'  cols=10 rows=2 readonly='readonly'  style = 'height : 58px;'  class='pyboxCode RO'>\nmyStr = \"Pour laisser un message, appuyez sur la touche # de votre t\u00e9l\u00e9phone.\"\nprint(myStr)<\/textarea><\/div>\n<div id='pbhistory2' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit2' value=' '\/><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse2\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"2\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"47ebff595de86a43cedc321b4243788d\"\/>\n<div id='pbresults2' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit2\").value = \"Run program\";document.getElementById(\"inputInUse2\").value = \"N\";<\/script>\n<\/p>\n<p>Ce comportement est du au fait que la partie \u00e0 l'int\u00e9rieur des guillemets\u00a0<code>\"\"<\/code>\u00a0est un <em>lit\u00e9ral de cha\u00eene<\/em>, ce qui signifie qu'il devrait \u00eatre copi\u00e9 lit\u00e9ralement et pas intrerpr\u00e9t\u00e9 comme une commande. De la m\u00eame mani\u00e8re,\u00a0<code>print(\"3 + 4\")<\/code>\u00a0n'\u00e9crira pas le nombre <code>7<\/code> mais juste la cha\u00eene\u00a0<code>3 + 4<\/code>.<\/p>\n<h2>S\u00e9quences d'\u00e9chappement<\/h2>\n<p>Comment faire si vous voulez ins\u00e9rer des guillemets <code>\"<\/code> \u00e0 l'int\u00e9rieur d'une cha\u00eene? Si vous essayez d'ex\u00e9cuter\u00a0<code><\/code><code>print(\"J'ai dit \"Wow!\" tr\u00e8s fort\"),<\/code><a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/console\/?consolecode=print%28%22J%27ai%20dit%20%22Wow%21%22%20tres%20fort%22%29\" target=\"_blank\"> cela g\u00e9n\u00e8re une erreur<\/a> : le probl\u00e8me est que Python voit une cha\u00eene,\u00a0<code>\"J'ai dit \"<\/code>\u00a0suivie de quelque chose qui n'est pas une cha\u00eene:\u00a0<code>Wow!<\/code>. Ce n'est pas ce que nous voulions!<\/p>\n<p>Python propose deux moyens simples d'ins\u00e9rer des guillemets \u00e0 l'int\u00e9rieur d'une cha\u00eene.<\/p>\n<ul>\n<li>Vous pouvez commencer et terminer une cha\u00eene lit\u00e9rale avec des apostrophes \u00e0 la place des guillemets, par exemple\u00a0<code>'blah blah'<\/code>. Les guillemets peuvent ainsi \u00eatre plac\u00e9s \u00e0 l'int\u00e9rieur <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/console\/?consolecode=print%28%27Tu%20as%20dit%20%22Wow%21%22%20tr%C3%A8s%20fort%21%27%29\" target=\"_blank\"><code>'Tu as dit \"Wow!\" tr\u00e8s fort.'<\/code><\/a><\/li>\n<li>Vous pouvez placer une barre oblique invers\u00e9e suivie du guillemet ou de l'apostrophe (<code>\\\"<\/code> or <code>\\'<\/code>). Cela s'appelle une <em>s\u00e9quence d'\u00e9chappement<\/em>; Python va supprimer la barre oblique invers\u00e9e et\u00a0n'afficher que le guillemet ou l'apostrophe \u00e0 l'int\u00e9rieur de la cha\u00eene. Voici un exemple.<br \/>\n<form class=\"pbform\" action=\"#\" id=\"pbform3\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox3'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div>Les barres obliques invers\u00e9es\u00a0prot\u00e8gent les guillemets mais ne sont pas affich\u00e9es.<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 58px;'><textarea wrap='off' name='usercode3' id='usercode3'  cols=10 rows=2 readonly='readonly'  style = 'height : 58px;'  class='pyboxCode RO'>\nprint('L\\'exemple avec un apostrophe.')\nprint(\"Voici un \\\"\u00e9chappement\\\" de guillemets\")<\/textarea><\/div>\n<div id='pbhistory3' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit3' value=' '\/><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse3\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"3\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"7344b568fb14157145129c6fb376bb39\"\/>\n<div id='pbresults3' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit3\").value = \"Run program\";document.getElementById(\"inputInUse3\").value = \"N\";<\/script>\n<\/li>\n<\/ul>\n<p>A cause des s\u00e9quences d'\u00e9chappement, la barre oblique invers\u00e9e (<code>\\<\/code>) est un symbole sp\u00e9cial. Pour l'inclure dans une cha\u00eene, il faut l'\u00e9chapper avec une deuxi\u00e8me barre oblique invers\u00e9e, en d'autres termes, il faut \u00e9crire <code>\\\\<\/code> dans votre cha\u00eene lit\u00e9rale.<\/p>\n<div class='pybox modeNeutral' id='pybox4'>\n<img title='You have not yet completed this problem.' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/icon.png' class='pycheck'\/><div class=\"heading\"><span class='type'>Multiple Choice Exercise: <\/span><span class='title'>Caract\u00e8res d'\u00e9chappements<\/span><\/div><div>Qu'affiche le code\u00a0<code>print(\"Les barres obliques invers\u00e9es \\\\, les apostrophes \\', les guillemets \\\" et les di\u00e8ses # sont g\u00e9niaux!\")<\/code><\/div><label>Your choice: <\/label><select id=\"pyselect4\"><option value=\"d\" selected>Select one<\/option><option value=\"r\">Les barres obliques invers\u00e9es \\, les apostrophes ', les guillemets \" et les di\u00e8ses # sont g\u00e9niaux!\n<\/option><option value=\"w\">g\u00e9n\u00e8re une erreur<\/option><option value=\"w\"> et di\u00e8ses<\/option><option value=\"w\">Les barres obliques invers\u00e9es \\\\, les apostrophes \\', les guillemets \\\" et les di\u00e8ses # sont g\u00e9niaux!<\/option><\/select><div class='pyboxbuttons'><input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" name=\"slug\" value=\"3.escapemulti\"\/><input type='submit' style='margin:5px;' value='Check answer' onClick='pbMultiCheck(4)'\/><\/div><div class=\"pbresults\" id=\"pyMultiResults4\"><\/div><div class=\"epilogue\">Correct!<\/div><\/div>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform5\" method=\"POST\">\n<div class='pybox modeNeutral ' id='pybox5'>\n<img title='You have not yet completed this problem.' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/icon.png' class='pycheck'\/><div class=\"heading\"><span class='type'>Coding Exercise: <\/span><span class='title'>Echapp\u00e9 belle<\/span><\/div>Ecrivez un programme qui affiche:<\/p>\n<pre>Echappez l'apostrophe et le guillemet, comme \\\"<\/pre>Note: il y a plusieurs mani\u00e8re d'arriver au r\u00e9sultat (comme toujours)! Par exemple, vous pouvez entourer la cha\u00eene d'apostrophes ou de guillemets. Dans chacun des cas, l'\u00e9chappement est n\u00e9cessaire. Pour pratiquer un peu plus, r\u00e9solvez le probl\u00e8me d'une mani\u00e8re puis de l'autre. Pouvez-vous trouver <a class=\"hintlink\"  id=\"hintlink6\">une troisi\u00e8me solution?<\/a><div class=\"helpOuter\" style=\"display: none;\"><div class=\"helpInner\"><div style=\"text-align: center\">You need to create an account and log in to ask a question.<\/div><\/div><\/div><div class='pyboxTextwrap pyboxCodewrap RW resizy'  style='height: 526px;'><textarea wrap='off' name='usercode5' id='usercode5'  cols=10 rows=20   class='pyboxCode RW'>\n<\/textarea><\/div>\n<div id='pbhistory5' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit5' value=' '\/><\/td>\n<td><input type='button' name='history' value=\"History\" onclick=\"historyClick(5,'3.escape')\" ><\/td>\n<td><input type='button' name='help' value=\"Help\" onclick=\"helpClick(5);\" ><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse5\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"5\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"f17f820fd6d33ffd6722056594ff13df\"\/>\n<div id='pbresults5' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit5\").value = \"Run program\";document.getElementById(\"inputInUse5\").value = \"N\";<\/script>\n<\/p>\n<p>Il y a d'autres s\u00e9quences d'\u00e9chappement comme <em>saut de ligne<\/em> dont nous ne parlerons pas pour le moment. Vous \u00eates pr\u00eat \u00e0 passer \u00e0 la le\u00e7on suivante!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un programme informatique ressemble \u00e0 un langage cod\u00e9, ce qui est n\u00e9cessaire pour que l'ordinateur comprenne pr\u00e9cis\u00e9ment ce que vos commandes signifient. Mais, \u00e9tant un langage cod\u00e9, il est difficile pour les humains de le lire. Pour compenser ce probl\u00e8me, &hellip; <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/3-fr\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-4622","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/4622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/comments?post=4622"}],"version-history":[{"count":30,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/4622\/revisions"}],"predecessor-version":[{"id":8977,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/4622\/revisions\/8977"}],"wp:attachment":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/media?parent=4622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}