initiation au langage python

27

Upload: sarah

Post on 04-Jun-2015

1.307 views

Category:

Documents


3 download

DESCRIPTION

langage de programmation Python

TRANSCRIPT

Page 1: Initiation au langage python
Page 2: Initiation au langage python
Page 3: 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

Page 4: Initiation au langage python
Page 5: Initiation au langage python
Page 6: Initiation au langage python

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.

Page 7: Initiation au langage python

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

Page 8: Initiation au langage python

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.

Page 9: Initiation au langage python

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…).

Page 10: Initiation au langage python

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

Page 11: Initiation au langage python

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

Page 12: Initiation au langage python

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:

Page 13: Initiation au langage python

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é

Page 14: Initiation au langage python

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

Page 15: Initiation au langage python

Exemple :

o La boucle « For… in »

for element in objet : instruction 1 instruction 2

... instruction n

Exemple :

IV. Les fonctions

Page 16: Initiation au langage python

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

Page 17: Initiation au langage python

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.

Page 18: Initiation au langage python

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 !")

Page 19: Initiation au langage python

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

Page 20: Initiation au langage python

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.

Page 21: Initiation au langage python
Page 22: Initiation au langage python
Page 23: Initiation au langage python
Page 24: Initiation au langage python
Page 25: Initiation au langage python
Page 26: Initiation au langage python
Page 27: Initiation au langage python

Webographie

Les sites généraux :

www.python.org

Les liens