Cours de formation complet sur la programmation dynamique python


Télécharger Cours de formation complet sur la programmation dynamique python

★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


Cours de formation complet sur la programmation dynamique python

...

Chapitre 1 Introduction

1.1 Ordinateur et langages

L'informatique présentée dans ce cours est abordée d'un point de vue utilitaire. C'et outil permet d'automatiser des tâches répétitives, d'accélérer des calculs complexes comme l'approximation d'un calcul intégral (voir gure 1.1). Le langage Python, sans être le plus rapide des langages de programmation, permet dans la plupart des cas de concevoir plus rapidement un programme informatique répondant à un objectif donné. Mais avant de rentrer dans le vif du sujet, voici quelques détails techniques et quelques termes fréquemment employés en informatique.

1.1.1 L'ordinateur

On peut considérer simplement qu'un ordinateur est composé de trois ensembles :

  •  le microprocesseur
  •  la mémoire
  •  les périphériques (écran, imprimantes, disque dur, ...)

Le microprocesseur est le c÷ur de l'ordinateur, il suit les instructions qu'on lui donne et ne peut travailler qu'avec un très petit nombre d'informations.

C'est pourquoi on lui adjoint une mémoire avec laquelle il échange sans arrêt des données. Sa capacité se mesure en octets (kilo-octets, mégaoctets, gigaoctets ou leurs abréviations Ko, Mo, Go). Ces échanges entre processeur et mémoire sont rapides.

Fig. 1.1: Illustration du calcul approché d'une intégrale à l'aide de la méthode des rectangles.

Les périphériques regroupent tout le reste (écran, clavier, souris, disque dur, imprimante...), tout ce qui nous permet de dialoguer avec l'ordinateur et tout ce qui nous permet de conserver des informations une fois que celui-ci est éteint.

1.1.2 Termes informatiques

Définition 1.1.1 : algorithme

Un algorithme est une suite nie de règles à appliquer dans un ordre déterminé à un nombre ni de données pour arriver avec certitude, en un nombre ni d'étapes, à un certain résultat et cela, indépendamment des données. Leur écriture est indépendante du langage choisi.

Qu'il soit écrit en Basic, en Pascal, en C, en Python, en français, un algorithme reste le même, ce qui favorise l'apprentissage d'un nouveau langage informatique lorsqu'on en connaît déjà un.

Définition 1.1.2 : programme

Un programme informatique est une suite d'instructions ou séquence d'instructions. C'est la réalisation informatique d'un algorithme. Il dépend du langage.

Définition 1.1.3 : compilateur et compilation

Le compilateur est un programme qui traduit un code écrit dans un langage de programmation (ici le C) en langage dit "machine", compréhensible par l'ordinateur. La compilation est le fait de traduire un programme an que l'ordinateur le comprenne.

Par la suite, certaines erreurs de compilations courantes seront citées, celles-ci dépendant du compilateur choisi qui est pour ce cours celui du langage Python.

Définition 1.1.4 : mot clé

Un mot clé est une composante du langage et fait partie de sa grammaire.

La table 3.1 (page 41) regroupe les mots-clé du langage Python.

1.2 Présentation du langage Python

1.2.1 Histoire

Python est un langage objet interprété de haut niveau, créé au début des années quatre-vingt-dix par

Guido Van Rossum au Centrum voor Wiskunde à Informatica, Amsterdam. . En 1995, Rossum poursuivit le développement de Python à la Corporation for National Research Initiatives de Reston (Virginie). Et en 2000, Rossum créa l'équipe BeOpen PythonLabs qui, en octobre de la même année est incorporée à Zope

Corporation puis à la société Digital Creations. En 2001, la PSF (Python Software Foundation) est créée.

Il s'agit d'une organisation à but non lucratif détenant les droits de propriété intellectuelle de Python.

Elle est sponsorisée en particulier par Zope Corporation. Python est distribué sous forme de logiciel libre.

Python est couvert par sa propre licence (voir le site [www-PyLicence] ou le chapitre 9.2).Toutes les versions depuis la 2.0.1 sont compatibles avec la licence GPL (GNU Public Licence1

)..

1.2.2 Description sommaire

On distingue plusieurs classes parmi les langages informatiques selon la syntaxe qu'ils proposent ou les possibilités qu'ils orent. Python est un langage :

  1. interprété
  2. orienté objet
  3. de haut niveau
  4. modulaire
  5. à syntaxe positionnelle

Le langage Python est dit interprété car il est directement exécuté sans passer par une phase de compilation qui traduit le programme en langage machine, comme c'est le cas pour le langage C. En quelque sorte, il fonctionne autant comme une calculatrice que comme un langage de programmation. An d'accélérer l'exécution d'un programme Python, il est néanmoins possible de traduire un programme dans un langage (bytecode) qui est ensuite interprété par une machine virtuelle Python. Ce mécanisme est semblable à celui propre au langage Java.



On considère que le langage Python est de haut niveau car il propose des fonctionnalités avancées et automatiques telle le garbage collecting. Cette tâche correspond à la destruction automatique des objets créés lorsqu'ils ne sont plus utilisés. Il propose également des structures de données complexes telles que des dictionnaires, éloignées des types numériques standards.

Le langage Python est modulaire. La dénition du langage est très succinte et autour de ce noyau concis, de nombreuses librairies ou modules ont été développées. Python est assez intuitif, être à l'aise avec ce langage revient à connaître tout autant sa syntaxe que les nombreux modules disponibles, eux-mêmes écrits en Python.

Le langage Python est à syntaxe positionnelle en ce sens que l'indentation fait partie du langage. Le point virgule permet de séparer les instruction en langage C, l'accolade permet de commencer un bloc d'instruction. En Python, seule l'indentation permet de marquer le début et la n d'un tel bloc, ce procédé consiste à décaler les lignes vers la droite pour montrer qu'elles appartiennent au même bloc d'instructions.

1.2.3 Avantages et inconvénients du langage Python

Alors qu'il y a quelques années, le langage C puis le langage C++ s'imposaient souvent comme langage de programmation, il existe dorénavant une profusion de langages (Java, PHP, Visual Basic, Perl, ...). Il est souvent possible de transposer les mêmes algorithmes d'un langage à un autre. Le choix approprié est alors celui qui offre la plus grande simplicité lors de la mise en œuvre d'un programme et aussi lors de son utilisation (vitesse d'exécution notamment).

Comme la plupart des langages, le langage Python est tout d'abord portable puisqu'un même programme peut être exécuté sur un grand nombre de systèmes d'exploitation comme Linux, Windows, Mac Os...

Python possède également l'avantage d'être entièrement gratuit tout en proposant la possibilité de pouvoir réaliser des applications commerciales à l'aide de ce langage. Les paragraphes qui suivent présentent les avantages et les inconvénients de Python face à d'autres langages.

1.2.3.1 Python et Java

La syntaxe de Python est beaucoup plus simple que celle de Java (proche du C), ce qui améliore de façon très significative les temps de développement. Le programmeur ne perd pas de temps en déclaration de types, de variables, ... Python intègre des types de données très puissants, comme les listes et dictionnaires polymorphiques qui simplifient considérablement le travail de programmation. Enfin, Python est un langage totalement ouvert et libre, qui ne dépend d'aucune entreprise particulière.

1.2.3.2 Python et Perl

Python et Perl partagent un certain nombre de concepts mais leurs philosophies sont totalement différentes.

Perl est plutôt destiné à programmer des tâches de bas niveau, avec son système d'expressions régulières, d'analyse de chier et de génération de rapport. Python est plus orienté vers le développement d'applications, nécessitant des structures de données plus complexes et encourage le programmeur à produire du code facile à maintenir.

1.2.3.3 Python et C++

La plupart des remarques concernant Java s'appliquent à C++. Ajoutons encore que si le code Python est typiquement trois à cinq fois plus court que le code Java équivalent, il est de cinq à dix fois plus court que le code C++ correspondant. C'est un gain de temps notable lors des phases de développement et de maintenance des programmes. Un programme C++ nécessite une recompilation chaque fois que l'on change d'environnement, un programme compilé sur une plate-forme ne pouvant en aucun cas être exécuté sur une autre. A l'inverse, un programme Python s'exécutera sur toute plate-forme disposant de la machine virtuelle Python. Son principal inconvénient face au langage C++ est sa vitesse d'exécution, plus lente.

1.2.3.4 Conclusion

Si le langage C reste le langage de prédilection pour l'implémentation d'algorithmes complexes et gourmands en temps de calcul ou en capacités de stockage, un langage tel que Python su‑t dans la plupart des cas. De plus, lorsque ce dernier ne convient pas, il ore toujours la possibilité, pour une grande exigence de rapidité, d'intégrer un code écrit dans un autre langage tel que le C ou Java, et ce, d'une manière assez simple.

1.3 Installation sur Windows

1.3.1 Installation du langage Python

Python a l'avantage d'être disponible sur de nombreuses plate-formes comme Windows, Linux ou encore Macintosh. L'installation présentée ici concerne le système d'exploitation Windows uniquement. Toutefois, excepté ce paragraphe, les exemples décrits par la suite ne dépendront pas d'un quelconque système. Sous Windows, il su‑t de décompresser le chier Python-2.3.4.exe disponible à l'adresse [www-PyDownload] et dont la documentation associée est fournie à l'adresse [www-PyDoc]. Il est conseillé de télécharger la dernière version stable du langage. Les options d'installation choisies sont celles par défaut, le répertoire d'installation est C :/Python23. A la n de cette installation apparaît un menu supplémentaire dans le menu Démarrer (ou Start) de Windows comme le montre la gure 1.2. Ce menu contient les intitulés suivant :

IDLE (Python GUI) éditeur de texte, pour programmer



Module Docs pour rechercher des informations dans la documentation

Python (command line) ligne de commande Python

Python Manuals documentation à propos du langage Python

Uninstall Python pour désinstaller Python

La documentation décrit en détail le langage Python, elle inclut également un tutoriel qui permet de le découvrir. La ligne de commande (voir gure 1.4) permet d'exécuter des instructions en langage Python. Elle est pratique pour eectuer des calculs mais reste contre-indiqué lorsqu'il s'agit d'écrire un programme. C'est pourquoi il est nécessaire d'utiliser un éditeur de texte qui permet d'écrire un programme, de le sauvegarder, et de ne l'exécuter qu'une fois terminé au lieu que chaque ligne de celui-ci ne soit interprétée immédiatement après qu'elle a été écrite.

1.3.2 Utilisation de l'éditeur de texte

Fig. 1.4: Fenêtre de commande fournie avec le langage Python.

La figure 1.2 montre le menu installé par Pythondans le menu "Démarrer" de Windows. En choisissant

  1. Introduction 10

l'intitulé "IDLE (Python GUI)", on active la fenêtre de commande de Python(voir figure 1.4).Les instructions sont interprétées au fur et à mesure qu'elles sont tapées au clavier. Après chaque ligne, cette fenêtre de commande conserve la mémoire de tout ce qui a été exécuté. Par exemple :

>>> x = 3

>>> y = 6

>>> z = x * y

>>> print z

>>> 

Après l'exécution de ces quelques lignes, les variables x, y, z existent toujours. Pour eacer toutes les variables créées, il su‑t de redémarrer l'interpréteur par l'intermédiaire du menu

Shell − − > RestartShell. Les trois variables précédentes auront disparu.

Il n'est pas possible de conserver le texte qui a été saisi au clavier, ce programme conserve seulement les résultats de son interprétation. Il est possible toutefois de rappeler une instruction déjà exécutée par l'intermédiaire de la combinaison de touches ALT + p, pressée une ou plusieurs fois. La combinaison ALT + n permet de revenir à l'instruction suivante. Pour écrire un programme et ainsi conserver toutes les instructions, il su‑t d'actionner le menu File − − > NewWindow qui ouvre une seconde fenêtre qui fonctionne comme un éditeur de texte (voir gure 1.5).

Fig. 1.5: Fenêtre de programme, le menu Run − − > RunModule permet de lancer l'exécution du programme. L'interpréteur Python est réinitialisé au début de l'exécution et ne conserve aucune trace des travaux précédents.

Après que le programme a été entré, le menu Run − − > RunModule exécute le programme. Il demande au préalable s'il faut enregistrer puis réinitialise l'interpréteur Python pour eacer les traces des exécutions précédentes. Le résultat apparaît dans la première fenêtre (celle de la gure 1.4). La pression des touches "Ctrl + C" permet d'arrêter le programme avant qu'il n'arrive à sa n.

Remarque 1.3.1: fenêtre intempestive

Si on veut de débarasser de cette fenêtre intempestive qui demande confirmation pour enregistrer les dernières modifications, il su‑t d'aller dans le menu Options − − > ConfigureIDLE et de choisir No prompt sur la quatrième ligne dans la rubrique General (voir figure 1.6).

Cette description succinte permet néanmoins de réaliser puis d'exécuter des programmes simples. Les autres fonctionnalités sont celles d'un éditeur de texte classique, notamment la touche F1 qui débouche sur l'aide associée au langage Python. Il est possible d'ouvrir autant de fenêtres qu'il y a de fichiers à modifier simultanément. Néanmoins, il existe d'autres éditeurs plus riches comme celui proposé au paragraphe 1.3.3.1. Ils sont souvent conçus de manière à s'adapter à plusieurs autres langages tels que C,

Perl, PHP, ou HTML. Il su‑t pour cela de leur indiquer l'emplacement du compilateur associé au langage choisi. Cette configuration est souvent manuelle mais semblable d'un éditeur à l'autre.



39