Diapositive 1 - Le site de la SIN
Transcription
Diapositive 1 - Le site de la SIN
Systèmes Numériques S.I.N PYTHON Classe : TSTI2D Initiation à la programmation Python 1 Pourquoi Python: Le langage python est utilisé pour développer des applications graphiques sous Pcduino. Dans un premier temps nous allons nous intéresser aux bases de la programmation Python, puis utiliser une interface graphique ( PyGTK par exemple) avec Qt. 1.1 Choix et Intérêts de la programmation Python ➢ Python est portable, non seulement sur les différentes variantes d'Unix, mais aussi sur les OS propriétaires : Mac OS, BeOS, NeXTStep, MS-DOS et les différentes variantes de Windows. Un nouveau compilateur,baptisé JPython, est écrit en Java et génère du bytecode Java. ➢ Python est gratuit, et utilisable sans restriction dans des projets commerciaux. ➢ La syntaxe de Python est très simple et, combinée à des types de données évolués (listes,dictionnaires...), cela permet des programmes à la fois très compacts et très lisibles. ➢ Python est orienté-objet. Il supporte l'héritage multiple et la surcharge des opérateurs. ➢ Python intègre, comme Java ou les versions récentes de C++, un système d'exceptions, qui permettent de simplifier considérablement la gestion des erreurs. ➢ Python est dynamique (l'interpréteur peut évaluer des chaînes de caractères représentant des expressions ou des instructions Python) ➢ Tout objet manipulable par le programmeur possède un type bien défini à l'exécution, qui n'a pas besoin d'être déclaré à l'avance. ➢ Python possède actuellement deux implémentations. L'une, interprétée, dans laquelle les programmes Python sont compilés en instructions portables, puis exécutés par une machine virtuelle (comme pour Java, avec une différence importante : Java étant statiquement typé, il est beaucoup plus facile d'accélérer l'exécution d'un programme Java que d'un programme Python). L'autre génère directement du bytecode Java. ➢ Python est extensible : comme Tcl ou Guile, on peut facilement l'interfacer avec des bibliothèques C existantes. On peut aussi s'en servir comme d'un langage d'extension pour des systèmes logiciels complexes. ➢ • La bibliothèque standard de Python, et les paquetages contribués, donnent accès à une /5 grande variété de services : chaînes de caractères et expressions régulières, services UNIX standards (fichiers, pipes, signaux,sockets, threads...), protocoles Internet (Web, News, FTP, CGI, HTML...), persistance et bases de données, interfaces graphiques. ➢ Python est un langage qui continue à évoluer, soutenu par une communauté d'utilisateurs enthousiastes et responsables, dont la plupart sont des supporters du logiciel libre. Parallèlement à l'interpréteur principal,écrit en C et maintenu par le créateur du langage, un deuxième interpréteur, écrit en Java, est en cours de développement. ➢ Python est un langage de choix pour traiter le XML. 1.2 Rappels sur les langages: 1.2.1 Des langages de différents niveaux : Chaque processeur possède un langage propre, directement exécutable : le langage machine. Il est formé de 0 et de 1 et n’est pas portable, mais c’est le seul que l’ordinateur puisse utiliser . ➢ le langage d’assemblage est un codage alphanumérique du langage machine. Il est plus lisible que le langage machine, mais n’est toujours pas portable. On le traduit en langage machine par un assembleur ; ➢ les langages de haut niveau. Souvent normalisés, ils permettent le portage d’une machine à l’autre. Ils sont traduits en langage machine par un compilateur ou un interpréteur. 1.2.2 Compilation et interprétation La compilation est la traduction du source en langage objet. Elle comprend au moins cinq phases : Phase d'analyse : lexicale, syntaxique et sémantique Phase de production de code objet qui génère le langage machine. Phase édition de liens La compilation est contraignante mais offre la plus une grande vitesse d’exécution. Chaîne de compilation lorsque l'on réalise une interprétation chaque ligne du source analysé est traduite au fur et à mesure en instructions directement exécutées. Aucun programme objet n’est généré. Cette technique est très souple mais les codes générés sont peu performants : l’interpréteur doit être utilisé à chaque exécution... 1.2.3 Interprétation Python interprété ou compilé ? /5 Python utilise une technique mixte, il interprète du bytecode compilé. Cela réalise un bon compromis entre la facilité de développement et la rapidité d’exécution . Le bytecode (forme intermédiaire) est portable sur tout ordinateur muni de la machine virtuelle Python. Pour exécuter un programme, Python charge le fichier source .py (ou .pyw) en mémoire vive, en fait l’analyse syntaxique, produit le bytecode et enfin l’exécute. Pour chaque module importé par le programme, Python vérifie d’abord s’il existe une version précompilée du bytecode (dans un fichier .pyo ou .pyc) dont la date correspond au fichier .py. S’il y en a un, Python l’utilise, sinon il fait une analyse syntaxique du module .py, et utilise le bytecode qu’il vient de générer. En pratique, il n’est pas nécessaire de compiler explicitement un module, Python gère ce mécanisme de façon transparente. 1.2.4 Technique de programmation Le génie logiciel étudie les méthodes de construction des programmes. Plusieurs modèles sont envisageables, entre autres : ➢ la méthodologie procédurale. On emploie l’analyse descendante (division des problèmes) et remontante (réutilisation d’un maximum de sous algorithmes). On s’efforce ainsi de décomposer un problème complexe en sous-programmes plus simples. Ce modèle structure d’abord les actions ; ➢ la méthodologie objet. On conçoit des fabriques (classes) qui servent à produire des composants (objets) qui contiennent des données (attributs) et des actions (méthodes). Les classes dérivent (héritage et polymorphisme) de classes de base dans une construction hiérarchique. Python permet d'utiliser les deux techniques de programmation. 2 Installation de python sous Windows et Ubuntu Éditeur de code Pyscripter Cet IDE est d'abord un éditeur de code très pratique qui permet de créer des projets Python, et d'éditer des scripts Python. Il dispose également de l'autocomplétion qui permet d'accéder facilement aux fonctions natives du langage Python. Il y a aussi une fonction qui vérifie la syntaxe en vous avertissant en soulignant le code qui pose problème, directement pendant la saisie (ce qui évite de découvrir les erreurs à la compilation). L'IDE permet de lancer le script à la volée simplement en cliquant sur le bouton Run. Et pour couronner le tout, il est compatible avec plusieurs versions de Python, très utile quand on est amené à travailler sur différents projets qui n'utilisent pas les mêmes versions de Python, ou pour tester sur d'autres versions. /5 Débuggueur python Le débuggeur qui propose les fonctions classiques : • • • • point d'arrêt (breakpoint) pile d'appels (call stack) inspecteur de variable (espion, aussi appelé watch) exécution pas à pas : step into, step over, step out, pause 2.1 Installation sous Windows Si Python n'est pas déjà installé, lancez le fichier exécutable : PortablePython_3.2.5.1.exe Cet exécutable installera python et son IDE (Environnement de développement intégré ) Pyscripter. 2.2 Installation sous Ubuntu Nous utiliserons sous Ubuntu l'éditeur de texte Geany. 3 Utilisation de l'IDE Pyscrypter Lancez le logiciel Vous devriez obtenir une fenêtre de ce type . /5 L’interpréteur L’interpréteur contient le triple chevron >>> qui est l’invite de Python (prompt en anglais) et qui signifie que Python attend une commande. ➢ Tapez la séquence suivante 2+3*5 dan l'interpréteur puis validez . Ceci ressemble un peu au fonctionnement d'une calculatrice... L’éditeur On peut y écrire des scripts, c’est-à-dire des programmes petits ou grands. ➢ Lire la vidéo suivante Python _ Installing Python and PyScripter under Windows.mp4 in english of course ! 4. Points clés à retenir et questionnement. ➢ ➢ ➢ ➢ ➢ ➢ Qu'est-ce qu'un langage machine ? Qu'est-ce qu'un langage de haut niveau ? Quelles sont les différences entre un langage compilé et interprété ? Le Python est il interprété ou compilé ? Donnez deux techniques de programmations. Qu'est-ce qu'un IDE ? Notre première activité s'arrête ici …. /5