{"id":4705,"date":"2012-06-21T17:51:59","date_gmt":"2012-06-21T21:51:59","guid":{"rendered":"http:\/\/cscircles.cemc.uwaterloo.ca\/?page_id=4705"},"modified":"2012-10-30T18:32:05","modified_gmt":"2012-10-30T22:32:05","slug":"python-chez-vous","status":"publish","type":"page","link":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/python-chez-vous\/","title":{"rendered":"Python chez vous"},"content":{"rendered":"<p>Le code que vous soumettez au site CS Circles website est \u00e9valul\u00e9 en utilisant une copie de\u00a0<em>Python<\/em>\u00a0qui s'ex\u00e9cute sur notre serveur web, ce qui nous permet de v\u00e9rifier automatiquement. Cependant, la mani\u00e8re la plus traditionnelle de programmer est d'installer l'interpr\u00e9teur Python sur votre propre ordinateur. Ex\u00e9cuter Python chez vous pr\u00e9sente plusieurs avantages: (i) vous ne devez pas partager les ressources limit\u00e9e de notre serveur web; (ii) vous pouvez \u00e9crire des programmes interactifs (voir ci-dessous); (iii) une fois le logiciel install\u00e9, vous n'avez plus besoin d'une connection Internet pour ex\u00e9cuter vos programmes; (iv) vous avez acc\u00e8s \u00e0 des outils de d\u00e9verminage, des sons et des graphiques.<\/p>\n<h2><span style=\"color: #000000;\"><strong>Outils Python Gratuits<\/strong><\/span><\/h2>\n<p>Le plus simple pour pouvoir ex\u00e9cuter Python sur votre ordinateur, que ce soit sous Windows, Mac, ou Linux, est depuis le site Python.org. <a href=\"http:\/\/www.python.org\/getit\/\">Cliquez ici pour aller \u00e0 la page de t\u00e9l\u00e9chargement de Python<\/a>. S\u00e9lectionnez la version 3.x la plus r\u00e9cente et choisissez l'installeur qui correspond \u00e0 votre syst\u00e8me d'exploitation (e.g., pour 32-bit Windows, \"Windows x86 MSI Installer\"), ensuite t\u00e9l\u00e9chargez et ex\u00e9cutez l'installeur. Une fois install\u00e9, ex\u00e9cutez le programme qui s'appelle\u00a0<strong>IDLE<\/strong>, cela ouvrira une session interactive Python.<\/p>\n<p>Note: si vous \u00eates \u00e0 l'\u00e9cole, vous ne pourrez peut \u00eatre pas installer le logiciel vous-m\u00eame suivant les permissions dont vous disposez sur le syst\u00e8me; il vous faudra alors demander l'aide d'un administrateur syst\u00e8me. Il existe aussi des installations de Python dites \"portable\" et qui peuvent \u00eatre install\u00e9es sur un stick USB, par exemple\u00a0<a href=\"http:\/\/portablepython.com\">portablepython.com<\/a>.<\/p>\n<p>IDLE manque de quelques outils pour faire du d\u00e9verminage. <a href=\"http:\/\/wingide.com\/\">Wing IDE<\/a>\u00a0offre de nombreuses possibilit\u00e9s de d\u00e9verminage telles que les\u00a0<a href=\"http:\/\/wingide.com\/psupport\/wingide-1.1\/node7.html#SECTION00740000000000000000\">breakpoints<\/a>\u00a0(points d'arr\u00eats), l'<a href=\"http:\/\/wingide.com\/psupport\/wingide-1.1\/node7.html#SECTION00760000000000000000\">execution pas \u00e0 pas<\/a>, voir le contenu des variables et la pile d'appel. D'autres options sont offertes par l'interm\u00e9diaire de\u00a0<a href=\"http:\/\/pydev.org\/\">PyDev<\/a> ou\u00a0<a href=\"http:\/\/www.jetbrains.com\/pycharm\/\">PyCharm<\/a>\u00a0mais elles sont plus difficiles d'utilisation.\u00a0<em>Sur le reste de cette page, nous parlerons uniquement d'<strong>IDLE<\/strong>.<\/em><\/p>\n<h2>Utiliser la Session Interactive (Interactive Prompt)<\/h2>\n<p>Quand vous ouvrez\u00a0<strong>IDLE<\/strong>\u00a0vous obtenez une session interactive (<em>interactive prompt <\/em>aussi appel\u00e9\u00a0<em>shell<\/em>). Vous pouvez y taper directement des commandes qui sont ex\u00e9cut\u00e9es directement. Le signe<\/p>\n<pre>&gt;&gt;&gt;<\/pre><code><\/code>indique que Python attend vos entr\u00e9es. Par exmeple, si vous tapez\u00a0<code>print(2+3)<\/code>\u00a0et que vous appuyez sur Entr\u00e9e, vous obtiendrez<\/p>\n<pre>&gt;&gt;&gt; print(2+3)\r\n5<\/pre>La premi\u00e8re ligne vous montre ce que vous avez demand\u00e9 \u00e0 Python d'ex\u00e9cuter et la deuxi\u00e8me la sortie: le r\u00e9sultat d'ex\u00e9cuter l'instruction a abouti au chiffre qui est affich\u00e9. Dans ce cas, vous n'avez m\u00eame pas besoin\u00a0<code>print<\/code>:<\/p>\n<pre>&gt;&gt;&gt; 2+3\r\n5<\/pre>En d'autres termes, par d\u00e9fault, Python affichera la valeur du r\u00e9sultat que vous lui avez demand\u00e9 d'ex\u00e9cuter. Une chose utilise est de v\u00e9rifier la version de Python que vous utilisez: si vous entrer les deux lignes qui suivent, vous verrez quelle version de Python vous utilisez.<br \/>\n<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>V\u00e9rifier quelle version de Python est utilis\u00e9e.<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 58px;'><textarea wrap='off' name='usercode0' id='usercode0'  cols=10 rows=2 readonly='readonly'  style = 'height : 58px;'  class='pyboxCode RO'>\nimport sys\nprint(sys.version_info)<\/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<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(0)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(0,'N')\" ><\/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=\"e58674cc16da28c4cea98460342f7446\"\/>\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(Nous enseignons la version 3 qui est plus simple pour les d\u00e9butants. La version 2 est beaucoup utilis\u00e9e dans l'industrie mais la version 3 prend de plus en plus d'importance et est de mieux en mieux support\u00e9e.)<\/p>\n<h2>Faits Utiles<\/h2>\n<ul>\n<li>Dans la session interactive, vous pouvez obtenir de la documentation sur les fonctions int\u00e9gr\u00e9es \u00e0 l'aide de la fonction <code>help<\/code>. P. ex., tapez\u00a0<code>help(print)<\/code> et il vous donnera des informations de base sur la fa\u00e7on dont la fonction <code>print()<\/code>.<\/li>\n<li>Pour arr\u00eater une boucle infinie ou un calcul qui prend trop de temps, vous pouvez interrompre \/ pause le programme en appuyant sur Ctrl-C. Essayez d'ex\u00e9cuter la commande suivante :\n<pre>while (1 &gt; 0): but = \"Gaspillage du temps\"<\/pre>Ensuite, il rompre avec Ctrl-C.<\/li>\n<li>Si vous utilisez Python comme calculatrice ou faire quelques petites exp\u00e9riences, voici un raccourci utile. Le caract\u00e8re de soulignement\u00a0<code>_<\/code>\u00a0se r\u00e9f\u00e8re \u00e0 la valeur de l'expression pr\u00e9c\u00e9dente \u00e9valu\u00e9 par\u00a0la session interactive. Par exemple, si vous tapez\u00a0<code>2+3<\/code> sur une ligne, et ensuite\u00a0<code>_*2<\/code>\u00a0dans la suivante, vous verrez\n<pre>&gt;&gt;&gt; 2+3\r\n5\r\n&gt;&gt;&gt; _*2\r\n10<\/pre>\n<\/li>\n<\/ul>\n<h2>Modification des fichiers \/ textes<\/h2>\n<p>Si vous travaillez sur un probl\u00e8me complexe, vous aurez besoin d'\u00e9crire et modifier un fichier long contenant plusieurs commandes, semblables \u00e0 ce que nous avons fait dans le site Cercles Informatiques. Pour cela, dans <strong>IDLE<\/strong>, allez dans le menu File (Fichier) et s\u00e9lectionnez New Window (Nouvelle fen\u00eatre), ou utilisez le raccourci Ctrl-N. Cela va ouvrir une nouvelle fen\u00eatre qui est un \u00e9diteur de texte basique (pas une session interactive). \u00c9crire du code dans cette fen\u00eatre (par exemple <code>print(\"Bonjour\")<\/code>); notez qu'il ne s'ex\u00e9cute pas quand vous appuyez sur la touche entr\u00e9e. Enregistrez ce fichier sur votre ordinateur (dans le menu File, choisissez Save (Enregistrez) ou appuyez sur Ctrl-S). Ensuite, vous pouvez l'ex\u00e9cuter : allez dans le menu Execute, puis s\u00e9lectionnez Run Module (ou utilisez le raccourci F5). Vous verrez la sortie de votre programme dans la fen\u00eatre interactive demander !<\/p>\n<h1>Entr\u00e9e Interactive<\/h1>\n<p>Une caract\u00e9ristique importante qui devient possible lorsque vous ex\u00e9cutez Python chez vous est que vous pouvez utiliser l'entr\u00e9e interactive dans la fen\u00eatre de l'interpr\u00e9teur. La commande <code>input()<\/code> obtiendrez une ligne de saisie de l'utilisateur \u00e0 partir de l'interpr\u00e9teur interactif, et cette cha\u00eene devient la valeur de retour de la fonction <code>input()<\/code>. En outre, lorsque vous appelez d'entr\u00e9e, vous pouvez passez une <em>cha\u00eene invite<\/em>, qui demande \u00e0 l'utilisateur ce qu'il faut faire. Nous illustrons avec un petit exemple ... copiez-le dans votre \u00e9diteur <strong>IDLE<\/strong>, puis enregistrez et ex\u00e9cutez-le \u00e0 l'essayer.<\/p>\n<pre>print(\"Salut !\")\r\nnomUtilisateur = input(\"Comment t'appeles-tu ? \")\r\nprint(\"Ravi de vous rencontrer,\", nomUtilisateur)<\/pre>\n<h2>Un exemple d'interactivit\u00e9 : un jeu de devinettes<\/h2>\n<p>Nous donnons ici un exemple de quelque chose o\u00f9 l'entr\u00e9e interactive fait une grosse diff\u00e9rence : un jeu de devinettes o\u00f9 vous jouez contre l'ordinateur.\u00a0Nous utilisons une fonction de la package\u00a0<code>random<\/code>\u00a0: la fonction\u00a0<code>random.randint(A, B)<\/code>\u00a0g\u00e9n\u00e8re un nombre al\u00e9atoire compris entre <code>A<\/code> et <code>B<\/code> (inclus). En utilisant ces fonctions, voici un petit jeu : copier-le dans votre \u00e9diteur, enregistrer et ex\u00e9cuter!<\/p>\n<pre>import random\r\nnumSecret = random.randint(1, 100)\r\nprint(\"Je pense a un nombre secret entre 1 et 100 ...\")\r\nwhile True:\r\n    essai = int(input(\"Devinez un nombre : \"))\r\n    if (essai == numSecret):\r\n        break\r\n    if (essai &gt; numSecret):\r\n        print(\"Desole, votre estimation est trop elevee.\")\r\n    if (essai &lt; numSecret):\r\n        print(\"Desole, votre estimation est trop petite.\")\r\nprint(\"Bien joue, vous l'avez devine !\")<\/pre>\n<h2>Ensuite ...<\/h2>\n<p>Si vous trouvez l'ex\u00e9cution de ces programmes \u00e0 la maison int\u00e9ressant, puis cr\u00e9er des programmes plus complexes, comme un programme interactif de convertir entre unit\u00e9s de mesure. Voici quelques-unes des choses plus que vous pouvez faire maintenant que vous utilisez Python \u00e0 la maison (en anglais):<\/p>\n<ul>\n<li>le\u00a0<a href=\"http:\/\/docs.python.org\/py3k\/library\/turtle.html#module-turtle\">module Python <strong>turtle<\/strong>\u00a0(tortue)<\/a>\u00a0vous permet de cr\u00e9er des graphiques et des animations en ligne g\u00e9om\u00e9triques;<\/li>\n<li>vous pouvez cr\u00e9er programmes Python\u00a0qui\u00a0<a href=\"http:\/\/docs.python.org\/tutorial\/inputoutput.html#reading-and-writing-files\">lire et ecrire des fichiers<\/a>;<\/li>\n<li>et vous pouvez utiliser Python pour\u00a0<a href=\"http:\/\/stackoverflow.com\/questions\/1967040\/how-can-i-create-a-melody-is-there-any-sound-module\">cr\u00e9er des bips musicaux<\/a>!<\/li>\n<\/ul>\n<p>Nous vous recommandons le module gratuit <a href=\"http:\/\/fr.wikibooks.org\/wiki\/Pygame\">pygame<\/a> si vous voulez beaucoup d'amusement et d'id\u00e9es int\u00e9ressantes concernant Python interactive.<\/p>\n<p><table class='pywarn'><tr><td class='pywarnleft'><img src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/warning.png'\/><\/td><td class='pywarnright'><span>  Utilisation de Pygame en Python 3 sur Windows peut \u00eatre fait avec <a href=\"http:\/\/www.lfd.uci.edu\/~gohlke\/pythonlibs\/#pygame\">les biblioth\u00e8ques suppl\u00e9mentaires trouv\u00e9s ici<\/a>.\u00a0 <\/span><\/td><\/table><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le code que vous soumettez au site CS Circles website est \u00e9valul\u00e9 en utilisant une copie de\u00a0Python\u00a0qui s'ex\u00e9cute sur notre serveur web, ce qui nous permet de v\u00e9rifier automatiquement. Cependant, la mani\u00e8re la plus traditionnelle de programmer est d'installer l'interpr\u00e9teur &hellip; <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/python-chez-vous\/\">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-4705","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/4705","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=4705"}],"version-history":[{"count":13,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/4705\/revisions"}],"predecessor-version":[{"id":4959,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/4705\/revisions\/4959"}],"wp:attachment":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/media?parent=4705"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}