Download - Initiation au langage python
Introduction
I. Présentation du langage Python
1. Un peu d’histoire
2. Avantages et inconvénients de Python
3. Comparaison avec d’autres langages
4. Les domaines d’application Python
5. Projets basés sur Python
II. Installation et utilisation de Python
1. Installation
2. Utilisation
3. Les modes d'exécution
III. Manipulation du langage
1. Variables
2. Types de variables
3. Les structures de contrôle
IV. Les fonctions
V. La programmation objet
1. Déclaration / instanciation
2. L’héritage
3. Les exceptions
VI. Les modules
VII. Applications
1. Calcul d’âge
2. Jeu de mots
Conclusion
Webographie
Introduction
Python est un langage de programmation facile à utiliser et puissant. Il offre des structures de
données puissantes de haut niveau et une approche simple mais réelle de la programmation
orientée-objet. C’est un langage idéal pour écrire des scripts et pour le développement rapide
d’applications dans de nombreux domaines et sur la plupart des plates-formes informatiques.
Il est ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl.
Python est aussi remarquable pour le nombre de bibliothèques accessibles via l'installation des
modules appropriés. Que ce soit la connexion avec une base de donnée, l'utilisation de
bibliothèques d'interface graphique (wxPython, PyQt, pyGTK), la manipulation avancée de
XML (pyXML), le traitement d'image (Python Imaging Library), le développement de jeu
vidéo (pygame), OpenGL, la grande majorité des technologies actuelle dispose d’une
extension python.
Cette présentation essaie d’introduire de façon informelle aux concepts et caractéristiques de
base du langage et du système Python. Elle présente un bon nombre des caractéristiques les
plus remarquables de Python, et donne une bonne idée de la “couleur” et du style du langage.
I. Présentation du langage Python
1. Un peu d’histoire
Python est 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.
Pythonest distribué sous forme de logiciel libre.
Python est couvert par sa propre licence et ne cesse d’évoluer.1
2. Avantages et inconvénients de Python
Avantage :
Interprété
Orienté objet
De haut niveau
Modulaire
A syntaxe positionnelle
Portable
Lisible
Extensible
Logiciel libre
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. En quelque sorte, il fonctionne
autant comme une calculatrice que comme un langage de programmation.
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éfinition du langage est très succincte 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 instructions 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 fin 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.
Python est portable puisqu’il fonctionne sous de nombreux systèmes d’exploitation comme
Linux, Windows, Mac Os…
La syntaxe de Python est très simple, facile à apprendre, à lire, à comprendre et à écrire.
Python est extensible: comme Tcl ou Guile, on peut facilement l'interfacer avec des librairies
C existantes.
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.
Désavantage :
Lent
Absence des pointeurs
Typage différent
Python est un langage interprété. Du coup, il est forcément beaucoup plus lent que des
langages compilés comme le C (réputé pour sa vitesse).2
Le typage "particulier" nécessite toujours une explication et le fait que les débuts et fins de
bloc sont uniquement marqués par des tabulations.
3. Comparaison avec d’autres langages
Python et Java
La syntaxe de Python est beaucoup plus simple que celle de Java, 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.
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.3
4. Les domaines d’application Python
Les domaines d'application naturels de Python incluent entre autres :
L'apprentissage de la programmation objet.
Les scripts d'administration système ou d'analyse de fichiers textuels.
Tous les développements liés à l'Internet et en particulier au Web: scripts CGI,
navigateurs Web, moteurs de recherche, agents intelligents, objets distribués…
L'accès aux bases de données (relationnelles).
La réalisation d'interfaces graphiques utilisateurs.
Le calcul scientifique et l'imagerie. Python ne sert alors pas à écrire les algorithmes,
mais à combiner et mettre en œuvre rapidement des librairies de calcul écrites en
langage compilé (C, C++, Fortran, Ada…).
Le prototypage rapide d'applications. L'idée générale est de commencer par écrire une
application en Python, de la tester (ou de la faire tester par le client pour d'éventuelles
modifications du cahier des charges). Trois cas peuvent alors se présenter :
o Les performances sont satisfaisantes, après optimisation éventuelle du
code Python. On livre alors le produit tel quel au client.
o Les performances ne sont pas satisfaisantes, mais l'analyse de l'exécution
du programme (à l'aide du profiler de Python) montre que l'essentiel du
temps d'exécution se passe dans une petite partie du programme. Les
fonctions, ou les types de données, correspondants sont alors réécrits
en C ou en C++, sans modification du reste du programme.
o Sinon, il est toujours possible de réécrire tout le programme, en utilisant la
version Python comme un brouillon.
5. Projets basés sur Python
Voici la liste de quelques projets représentatifs basés sur Python :
Zope, un serveur d'application innovant.
CPS, un framework de gestion de contenu et de travail collaboratif basé sur Zope.
Des moteurs de recherche comme Google ou Yahoo!.
Chandler, le projet de PIM (Personnal Information Manager) de l'Open Source
Applications Foundation).4
II. Installation et utilisation de Python
1. Installation
Simplicité d’installation
o Simple exécutable à télécharger à partir du site officiel et à installer sous
Windows.
o Sous Linux et Mac Os, généralement préinstallé.
2. Utilisation
Exécution du binaire python(.exe) =>shell interactif Exécution de script via python(.exe) nomDuScript
3. Les modes d'exécution
Les deux modes d'exécution d'un code Python - Soit on enregistre un ensemble de commandes Python dans un fichier grâce à un
éditeur (on parle alors d'un script Python) que l'on exécute par une touche du menu de
l'éditeur ;
- Soit on utilise un interpréteur (par exemple IDLE) pour obtenir un résultat immédiat
grâce à l'interpréteur Python embarque dans IDLE qui exécute la boucle d'évaluation
III. Manipulation du langage
1. Variables
Déclaration :
>>> ma_variable = "Ceci est une chaine de caractères"
Typage dynamique
2. Types de variables
Données numériques :
Entiers / Entiers Long / Virgules flottantes / Nombres complexes / Nombres
octaux et hexadécimaux
Booléens :
True, False
Chaînes de caractères :
Liste:
Tuples: sont des listes non modifiables
Dictionnaires :
Entrées/Sorties
Print : L'instruction print permet d'afficher une valeur, un texte à l'écran.
Input : Pour récupérer les données saisies par un utilisateur, on utilise les fonctions
input() et raw_input().
\n : permet de passer à une nouvelle ligne.
# : Précède le commentaire sur la même ligne du code
Exemple 1 :
nombre = input ("Entrez un nombre :\n")
print nombre
Avec cet exemple, la valeur que va entrer l'utilisateur sera enregistrée dans la variable appelée
nombre. Récapitulatif des variables
Type Symbole Modifiable ? Accès
Chaîne de caractère " " / ' ' / """ """ Non Séquentiel
Listes [ ] Oui Séquentiel
Tuples ( ) Non Séquentiel
Dictionnaires { } Oui Par clé
3. Les structures de contrôle
Les tests
Les tests permettent d'exécuter des instructions différentes selon la valeur d'une condition logique.
if condition1 : instruction1 instruction2
... elif condition2 :
instruction3 instruction4
... elif condition3 :
instruction5 instruction6
Exemple :
Les boucles o La boucle « While »
while (condition): instruction 1 instruction 2
... instruction n
Exemple :
o La boucle « For… in »
for element in objet : instruction 1 instruction 2
... instruction n
Exemple :
IV. Les fonctions
Declaration Résultat: Taper une chaine: La pluie tombe dehors La chaîne :'La pluie tombe dehors' contient 4 mots
o Les paramètres peuvent avoir une valeur par défaut ou non
o Le passage des paramètres par mot-clé se fait:
nb_mots = calcul_nombre_mots( chaine ="Hello World", debug = True )
V. La programmation objet
1. Déclaration / instanciation
o Etudiant est une classe o __init__ est le constructeur o getNom() et getAge() sont des méthodes o ._nom et ._age sont des attributs o julien est un objet, une instance de la classe
2. L’héritage
o Etudiant hérite de la classe Personne
o L'héritage peut être multiple
o On peut surcharger des méthodes
3. Les exceptions
o Exemple
raise / try / except
VI. Les modules
Les modules sont des programmes Python qui contiennent des fonctions que l’on est amené à
réutiliser souvent (on les appelle aussi bibliothèques ou librairies). Les développeurs de
Python ont mis au point de nombreux modules qui effectuent une quantité phénoménale de
tâches.
Avantages des modules :
o Réutilisation du code.
o La documentation et les tests peuvent être intégrés au module.
o La réalisation de services ou de données partagés.
1. Partition de l’espace de noms du système.
Les syntaxes possibles :
o La commande import « nom_module » : importe la totalité des objets du module
o La commande from « nom_module » : importe les objets à partir d’un module
Exemple: from math import pi, sin, log
VII. Applications
1. Calcul d’âge
Ce programme permet à l’utilisateur de saisir son âge et de calculer s’il est mineur ou majeur.
Code
age = -1
while age <= 0:
print("Entrez votre age :")
age = int(input())
if age < 18:
print("Encore", 18-age, "ans avant la majorite.")
elif age > 18:
print("Vous etes majeur depuis deja", age-18, "ans.")
else:
print("Vous venez d avoir vos 18 ans.")
print("Joyeux anniversaire !")
2. Jeu de mots
Ce programme présente trois simples algorithmes pour détecter s'il s'agit de Palindromes,
Anacycliques ou Anagrammes, en mentionnant le temps d’exécution (cf. Annexe1 : Code et
exécution).
Palindrome : un texte ou un mot dont l'ordre des symboles lettres ou des chiffres reste le
même qu'on le lise de gauche à droite ou de droite à gauche.
Exemple :
Radar, kayak, ABBA
Anacyclique : un mot ou une phrase que l'on peut lire à l'envers ou à l'endroit, Contrairement
au palindrome, un anacyclique a une signification différente selon le sens de lecture.
Exemple :
Soda, Ados ; Leon, Noel ; Mon, Nom
Anagramme : Jeu littéraire qui inverse ou permute les lettres d'un mot ou d'un groupe de mots
pour en extraire un sens ou un nouveau mot.
Exemple :
Aube => beau
Niche => chien, chine
Ordinateur =>on durerait, dur notaire, ration dure, rudération
Conclusion
Au terme de ce projet d’études consacré au langage Python, on possède une très bonne
vue d’ensemble sur le sujet grâce à la lecture d’une quantité volumineuse d’articles, de
tutoriaux et de livres. Nous connaissons maintenant les points forts de ce langage comme : la
destruction automatique des objets (garbage collecting), la portabilité et la simplicité de la
syntaxe mais aussi ses limitations qui se manifestent dans l’indentation qui identifie les blocs
d’instructions au lieu des accolades, le temps d’exécution qui est plus lent que les autres
langages vue qu’il est interprété.
Espérant que ce projet a atteint les objectifs demandés.
Webographie
Les sites généraux :
www.python.org
Les liens