Chapitre 2 informatique commune Introduction à Python et à son environnement 1.

Chapitre 2 informatique commune Introduction à Python et à son environnement 1. Écosystème et environnement de travail Python est un langage de programmation polyvalent et modulaire, utilisé dans de très nombreux domaines, scientifiques ou non. C’est pourquoi il existe de nombreuses distributions de python. Au lycée Louis-le-Grand nous utilisons Pyzo, distribution gratuite et open-source livrée avec un environnement de développement intégré simple à utiliser et avec tous les modules scientifiques dont nous aurons besoin cette année. 1.1 Installation du logiciel La première chose à faire est de télécharger Pyzo à l’adresse suivante : http://www.pyzo.org/ et de l’installer. Pyzo est disponible pour Windows, Linux et OSX (a priori si votre ordinateur n’est pas trop ancien vous aurez besoin de la version 64 bits). Comme souvent, il est conseillé d’utiliser la dernière version disponible et de vérifier de temps à autre si une nouvelle version n’est pas proposée au téléchargement. 1.2 L’environnement de travail L’environnement de développement que vous venez d’installer est un ensemble d’outils pour programmeurs conçus pour être utilisés au sein d’un éditeur interactif nommé IEP (Interactive Editor for Python). IEP consiste avant tout en un éditeur et une interface système (un shell) ; les autres outils ne sont pas indispensables à nos besoins pour l’instant très modestes. • L’interprète de commande Souvenons-nous que Python est un langage interprété (voir le chapitre précédent) : il est nécessaire de disposer d’un interprète de commande pour traduire nos instructions Python en langage machine. Sous Pyzo, l’interprète de commande se trouve dans le Shell. Si vous utilisez la dernière version de Pyzo deux interprètes de commandes sont disponibles, et en fonction des réglages des préférences l’un des deux est lancé automatiquement au démarrage. – S’il s’agit de l’interprète de commande par défaut le shell ressemblera à ceci : Python 3.4.2 |Continuum Analytics, Inc.| (default, Oct 21 2014, 17:42:20) on darwin (64 bits). This is the IEP interpreter with integrated event loop for TK. Type 'help' for help, type '?' for a list of *magic* commands. >>> – S’il s’agit de l’interprète IPython, le shell aura cette forme : Python 3.4.2 |Continuum Analytics, Inc.| (default, Oct 21 2014, 17:42:20) on darwin (64 bits). This is the IEP interpreter with integrated event loop for PYSIDE. Using IPython 2.4.1 −−An enhanced Interactive Python. ? −> Introduction and overview of IPython's features. %quickref −> Quick reference. help −> Python's own help system. object? −> Details about 'object', use 'object??' for extra details. In [1]: IPython est un interprète de commande amélioré offrant plus de fonctionnalités que l’interprète par défaut, mais pour débuter n’importe lequel fera l’affaire. http://info-llg.fr 2.2 informatique commune Quel que soit l’interprète utilisé, ce dernier se propose d’engager avec vous un dialogue interactif en vous invitant à taper une première commande après le prompt >>> ou In [1]: Répondons à l’invite en tapant "1 + 1" suivi de la touche "entrée" et observons sa réponse : >>> 1 + 1 2 >>> In [1]: 1 + 1 Out[1]: 2 In [2]: L’interprète de commande a exécuté notre instruction et retourné le résultat de celle-ci. Une fois la tâche terminée, le prompt vous invite de nouveau à taper une instruction. Nous pouvons déjà observer que Ipython numérote les instructions et distingue clairement votre solicitation (In) de sa réponse (Out). Poursuivons le dialogue avec : >>> print('Hello world !') Hello world ! >>> In [2]: print('Hello world !') Hello world ! In [3]: L’interprète IPython nous permet ici de discerner une différence qui serait passée inaperçue avec l’interprète de commande traditionnel. Toute fonction Python retourne un résultat (affiché derrière le Out), et certaines d’entres-elles ont en plus un effet sur l’environnement 1 : – l’instruction 1 + 1 a comme résultat 2 et n’a pas d’effet sur l’environnement ; – l’instruction print('Hello world !') retourne une valeur particulière nommée None et a pour effet d’afficher une chaîne de caractères dans le shell. La valeur None est la valeur retournée par les instructions qui n’ont en quelque sorte « rien à renvoyer » ; l’interprète IPython ne s’y trompe pas et n’affiche pas cette réponse, alors qu’en toute logique on pourrait s’attendre à voir écrit dans le shell : Out[2]: None La chaîne Hello world ! qui apparaît dans le shell n’est pas le résultat de l’instruction print mais l’effet de celle-ci sur son environnement. Notons que l’interprète standard ne s’y trompe pas non plus : le résultat de l’instruction (None, rappelons-le) n’apparaît pas dans le shell, mais avec cet interprète il n’est pas possible visuellement de distinguer une réponse d’un effet. Quelle différence entre retour et effet sur l’environnement ? Pour tenter de mieux comprendre celle-ci, jetons un coup d’œil sur l’aide en ligne de la fonction print : In [3]: help(print) Help on built−in function print in module builtins: print(...) print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file−like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream. In [4]: Cette fonction possède quatre paramètres optionnels (file, sep, end et flush) qui possèdent des valeurs par défaut, valeurs utilisées lorsqu’on ne précise pas explicitement les valeurs que l’on souhaite attribuer à ces paramètres. Le premier de ceux-ci, file, désigne le « lieu » vers lequel doit être dirigé le flux de caractères à imprimer ; sa valeur par défaut est sys.stdout (pour system standard output) qui désigne la sortie standard, à savoir l’écran pour la majorité des systèmes, et plus précisément ici le shell. Pour s’en convaincre, modifions cette sortie en écrivant : 1. On appelle effet une interaction avec un périphérique de sortie ou une modification de la mémoire. Introduction à Python et à son environnement 2.3 In [4]: print('Hello world !', file=open('essai.txt', 'w')) In [5]: Comme on peut le constater, cette fois il n’y a plus d’affichage dans le shell ; en revanche si vous tentez l’expérience vous constaterez qu’a été créé dans votre répertoire par défaut un nouveau fichier texte nommé essai.txt qui contient la chaîne de caractères 'Hello world !'.    Exercice 1 Pour vérifier que vous avez bien compris cette différence entre résultat et effet, compléter l’état du shell après chacune des solicitations suivantes : In [5]: 1 + 2 In [6]: In [5]: print(1 + 2) In [6]: In [5]: print(print(1 + 2)) In [6]: In [5]: print(1) + 2 In [6]: In [5]: print(1) + print(2) In [6]: • L’éditeur de texte Ce mode interactif est idéal pour de courtes commandes mais ne convient pas dès lors que nous aurons à rédiger des programmes. Dans ce cas, on utilise l’éditeur de texte fourni par IEP . Il possède nombre de fonctionnalités des éditeurs de texte usuels mais est doté en plus de certaines fonctionnalités propres à la programmation (numérotation des lignes, coloration syntaxique, indentation automatique, etc.). En contrepartie, pour être utilisables par IEP vos fichiers texte devront respecter certaines contraintes : leurs noms devront se terminer par le suffixe .py, leur contenu devra suivre les règles d’indentation propres à Python (on en reparlera plus loin), ne comporter que des instructions Python (si vous souhaitez ajouter une ligne de commentaires celle-ci devra débuter par le caractère #), etc. Recopions donc les lignes suivantes dans l’éditeur : print('Un nouveau calcul') print('5 * 3 =', 5*3) 2 + 4 puis exécutons ce script (menu "Exécuter →Exécuter le fichier" ou mieux par l’intermédiaire du raccourci clavier). Observons se qui se passe dans le panneau de l’interprète IPython : In [6]: (executing lines 1 to 3 of "<tmp 1>") Un nouveau calcul 5 * 3 = 15 In [7]: Il y a là une différence importante avec l’utilisation directe de l’interprète : lorsqu’on exécute un script écrit dans l’éditeur le résultat de ce dernier n’est pas retourné. Les effets des deux instructions print ont bien eu lieu, mais le résultat du calcul 2 + 4 n’est pas visible, alors que si ce calcul avait été exécuté directement dans le shell, nous aurions vu apparaître Out[6]: 6 Revenons dans le panneau d’édition et modifions son contenu pour le remplacer par le contenu suivant : # calcul du nombre de secondes dans une journée print('une journée a une durée égale à', 60 * 60 * 24, 'secondes') puis exécutons ce script. Voici ce que l’on obtient : http://info-llg.fr 2.4 informatique commune In [7]: (executing lines 1 to 2 of "<tmp 1>") une journée a une durée égale à 86400 secondes In [8]: La première ligne du script n’a pas d’effet ; comme la majorité des langages de script, les commentaires Python débutent caractère #. Qu’il soit utilisé comme premier caractère ou non, le # introduit un commentaire jusqu’à la fin de la ligne. Il ne faut jamais hésiter à commenter un code (sans pour autant tomber dans un verbiage creux) pour en faciliter la compréhension future. Quant à la seconde ligne du script, elle vous montre uploads/Industriel/ 02-initiation.pdf

  • 17
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager