Python en 10 minutes



Documents pareils
TP 1. Prise en main du langage Python

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Programmer en JAVA. par Tama

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Plan du cours. Historique du langage Nouveautés de Java 7

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Chapitre 2 Devine mon nombre!

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if


INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Introduction à MATLAB R

OpenPaaS Le réseau social d'entreprise

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Découverte de Python

STAGE IREM 0- Premiers pas en Python

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

TP1. Outils Java Eléments de correction

as Architecture des Systèmes d Information

1 Recherche en table par balayage

Présentation du langage et premières fonctions

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Python - introduction à la programmation et calcul scientifique

Développement Logiciel

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Utilisation d objets : String et ArrayList

1 Lecture de fichiers

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Java Licence Professionnelle CISII,

4. Groupement d objets

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Introduction au langage C

Premiers Pas en Programmation Objet : les Classes et les Objets

Programmation Web. Madalina Croitoru IUT Montpellier

Cours d initiation à la programmation en C++ Johann Cuenin

Programmation en Java IUT GEII (MC-II1) 1

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Programmation système I Les entrées/sorties

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

TP3 : Manipulation et implantation de systèmes de fichiers 1

L informatique en BCPST

Les bases du langage Python

TP1 : Initiation à Java et Eclipse

Bases de programmation. Cours 5. Structurer les données

Java Licence Professionnelle CISII,

INF 321 : mémento de la syntaxe de Java

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Les classes en Python

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

L alternative, c est malin 1. Comment faire plein de choses pour pas cher sur MacIntosh

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Classes et Objets en Ocaml.

Initiation à la programmation en Python

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Algorithmique et Programmation, IMA

Initiation à la Programmation en Logique avec SISCtus Prolog

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Programmation système de commandes en C

Langage Java. Classe de première SI

Bases de données et sites WEB Licence d informatique LI345

Corrigé des exercices sur les références

Dis papa, c est quoi un bus logiciel réparti?

INTRODUCTION À PYRAMID Gaël Bearstech. Crédits: Blaise Laflamme

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Formulaire pour envoyer un mail

Les chaînes de caractères

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Présentation du PL/SQL

Utilitaires méconnus de StrataFrame

Traduction des Langages : Le Compilateur Micro Java

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl , 17 novembre, Lyon. Alexis Sukrieh

INSTALLATION ET CONFIGURATION DE OPENLDAP

OCL - Object Constraint Language

Programmation C++ (débutant)/instructions for, while et do...while

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

TD3: tableaux avancées, première classe et chaînes

Cours 1 : La compilation

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Concevoir sa stratégie de recherche d information

Création et Gestion des tables

La gestion des exceptions

Cours d Algorithmique et de Langage C v 3.0

AWS avancé. Surveiller votre utilisation d EC2

Django et PostgreSQL sous la charge

INITIATION AU LANGAGE JAVA

Session 8: Android File System

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Accès aux bases de données

Chapitre VI- La validation de la composition.

Transcription:

Python en 10 minutes Poromenos http://www.poromenos.org Traduction: Matthieu Nouzille http://www.oxyg3n.org 1 Introduction Vous souhaitez vous mettre au langage de programmation Python mais vous n arrivez pas à trouver un tutoriel concis qui couvre les principaux aspects du langage? Ce tutoriel va essayer de vous enseigner Python en 10 min. Ce n est probablement pas un tutoriel à proprement parler, il se situe plutôt entre un tutoriel et une cheatsheet. L objectif de celui-ci est de vous expliquer les concepts qui vous permettront de vous lancer. De toute évidence, si vous souhaitez vraiment apprendre un langage il vous faudra pratiquer. Je vais supposer que vous avez déjà programmée et donc ne pas m attarder sur les choses non spécifiques au langage. Les mots clés les plus importants seront surlignées, vous pourrez ainsi les repérer facilement. Faites attention cependant car certaines notions seront abordées directement dans des exemples, la plupart du temps accompagnées d un commentaire. 2 Caractéristiques Python est fortement typé (les types sont forcés), dynamiquement et implicitement typé (cad, vous n avez pas à déclarer de variables), sensible à la casse (ex: var et VAR sont deux variables différentes) et orienté objet (tout est objet). 1

3 Obtenir de l aide L aide en Python est accessible directement depuis l interpréteur. Si vous souhaitez connaitre le fonctionnement d un objet, vous devez simplement invoquer la méthode: help(objet). Une autre fonction intéressante, dir(), celle-ci liste les méthodes d un l objet et affiche le docstring de celui-ci. >>> help ( 5 ) Aide sur un objet de type int : ( etc etc ) >>> dir ( 5 ) ' a b s ', ' a d d ',... >>> abs. doc ' abs ( number ) > number\n\ nretourne l a v a l e u r a b s o l u e de l argument. ' 4 Syntaxe Python n utilise pas de caractère spécifique pour délimiter les blocs d instructions. Tout se fait par identation (ndt: la bonne pratique est d utiliser 4 caractères espace pour identer un bloc de code). L identation démarre un bloc d instruction et le desidentation le termine. Les instructions qui ont besoin d être identées se terminent par deux-points (:). Les commentaires d une seule ligne commencent avec un #, et le commentaires qui s étalent sur plusieurs lignes utilisent des chaines de caractères (strings) multi-lignes. Les valeurs sont assignées aux variables avec un un signe égal ( = ) et les tests d égalité se font avec un double égal ( == ). Vous pouvez incrémenter/décrémenter des valeurs en utilisant les opérateurs += et -=. Ceci fonctionne avec de nombreux types de données, les chaines inclues. Vous pouvez aussi affecter plusieurs variables sur une seule ligne. Exemple: >>> myvar = 3 >>> myvar += 2 >>> myvar 5 >>> myvar = 1 >>> myvar 4 Ceci e s t un commentaire multi l i g n e s. Le code s u i v a n t concatene deux c h a i n e s. >>> mystring = H e l l o >>> mystring += world. >>> p r i n t mystring Hello world. # Echange de deux v a r i a b l e s en une s e u l e l i g n e (! ). 2

# Cela ne pose pas de problème de typage car l e s v a l e u r s # ne sont pas e n c o r e s a s s i g n é e s. >>> myvar, mystring = mystring, myvar 5 Type de donées Les structures de données disponibles en Python sont: les listes, les tuples et les dictionnaires. Les sets sont disponibles via la librairie sets (fait partie du langage à partir de Python 2.5). Les listes ressemblent à des tableaux à une dimension (Les tableaux python peuvent-être de tout type, vous pouvez donc mélanger les entiers (int), les chaines (strings) dans les listes/dictionnaires/tuples). Pour toutes ces structures de données, l index du premier élément est 0. Les nombres négatifs permettent de parcourir les tableaux de la fin vers le début; -1 représente la valeur précédente. Les variables peuvent également pointer des fonctions. L utilisation est la suivante: >>> sample = [ 1, [ another, l i s t ], ( a, t u p l e ) ] >>> mylist = [ L i s t item 1, 2, 3. 1 4 ] >>> mylist [ 0 ] = L i s t item 1 again >>> mylist [ 1] = 3. 1 4 >>> mydict = { ' Key 1 ' : ' Value 1 ', 2 : 3, ' p i ' : 3. 1 4 } >>> mydict [ ' p i ' ] = 3. 1 5 >>> mytuple = ( 1, 2, 3) # une f o i s créé, un t u p l e ne peut ê t r e m o d i f i é. >>> myfunction = len >>> p r i n t myfunction ( mylist ) 3 Vous pouvez accéder a un ensemble de valeurs consécutives en séparant les index par deux-points (:). Lorsque le premier index est laissé vide, on parle implicitement du premier, lorsque l index de fin est vide, on parle du dernier. Ci-dessous un exemple: >>> mylist = [ L i s t item 1, 2, 3. 1 4 ] >>> p r i n t mylist [ : ] [ ' L i s t item 1 ', 2, 3.1400000000000001] >>> p r i n t mylist [ 0 : 2 ] [ ' L i s t item 1 ', 2 ] >>> p r i n t mylist [ 3: 1] [ ' L i s t item 1 ', 2 ] >>> p r i n t mylist [ 1 : ] [ 2, 3. 1 4 ] 3

6 Les Chaines Le chaines peuvent utiliser les simples ou les doubles quotes. Vous pouvez inclure un type de quote dans des quotes d un autre type (ex: Il a dit Salut ). Les chaines multilignes sont entourés de 3 doubles (ou simples) quotes. Python supporte directement Unicode avec la syntaxe suivante: u Ceci est un String Unicode. Pour remplir un string avec des valeurs, vous devez utiliser l opérateur % et un tuple. Chaque %s du String est remplacé par un item du tuple, ceci de gauche à droite. Vous pouvez également utiliser un dictionnaire de substitutions. Exemple: >>>p r i n t Nom: %s \nnuméro : %s \ nchaine : %s % ( myclass. name, 3, 3 ) Name : Poromenos Number : 3 String : strstring = Ceci une c h a i n e m u l t i l i g n e s. e s t # ATTENTION: ne pas o u b l i e r l e s dans %(key ) s. >>> p r i n t Ceci %(verbe ) s un %(nom) s. % { nom : t e s t, verbe : e s t } Ceci est un test. 7 Instruction de contrôle de flux Les instructions de contrôle de flux sont: if, for et while. Il n y a pas de switch, il faut utiliser if à la place. Utiliser for pour parcourir les valeurs d une liste. Pour obtenir une liste de valeurs, utilisez range(nombre). La syntaxe des instructions est la suivante: rangelist = range ( 1 0 ) >>> p r i n t rangelist 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 f o r number i n rangelist : # V é r i f i e s i ' number ' e s t # p r é s e n t dans l e t u p l e i f number i n ( 3, 4, 7, 9) : # Break termine l a boucle f o r sans # e x é c u t e r l e contenu de l ' i n s t r u c t i o n e l s e. break e l s e : # L ' i n s t r u c t i o n e l s e e s t o p t i o n n e l l e. Le contenu de c e l l e c i 4

e l s e # e s t e x é c u t é seulement s i l a boucle n ' e s t pas stoppée par l e break # Continue permet de p a s s e r à l a prochaine i t é r a t i o n # de l a b o u c l e. I l e s t p l u t ô t i n u t i l e i c i car c ' est, # l a d e r n i è r e i n s t r u c t i o n de l a boucle. c o n t i n u e pass # ne r i e n f a i r e i f rangelist [ 1 ] == 2 : p r i n t deuxième item ( l a premier index d ' une l i s t e e s t 0) e s t 2 e l i f rangelist [ 1 ] == 3 : p r i n t deuxieme item e s t ( l a premier index d ' une l i s t e e s t 0) e s t 3 e l s e : p r i n t Je s a i s pas w h i l e rangelist [ 1 ] == 1 : pass 8 Les Fonctions Les fonctions sont déclarées avec le mot clé def. Les arguments possibles sont définis dans la déclaration de la fonction. Ceux-ci sont placés après les arguments obligatoires et sont initialisée avec des valeurs par défaut. Pour les arguments nommés, le nom de l argument est assigné à la valeur. Les fonctions peuvent retourner un tuple. Une fonction lambda doit au minimum contenir une instruction. Les paramètres sont passés par référence mais les types non-mutables (ndt: tuples, int, strings etc. en programmation objet, les types non-mutables sont des objets dont on ne peut modifier l état une fois qu ils ont été créés) ne peuvent être changés. Ceci est du au fait que l emplacement mémoire de l élément est passé et lier un autre objet a une variable remplace l ancien objet. Les types non-mutables sont donc remplacés. Par exemple: # Même chose que : d e f f ( x ) : r e t u r n x + 1 functionvar = lambda x : x + 1 >>> p r i n t functionvar ( 1 ) 2 # a n i n t e t a s t r i n g sont o p t i o n n e l s, i l s ont des v a l e u r s par d é f a u t # au cas ou l ' une d ' e n t r e e l l e ne s e r a i t pas p a s s é e #( r e s p e c t i v e m e n t 2 e t c h a i n e par d e f a u t ). d e f passing_example ( a_list, an_int =2, a_string= chaine par d e f a u t ) : a_list. append ( nouvel item ) an_int = 4 r e t u r n a_list, an_int, a_string >>> my_list = 1, 2, 3 >>> my_int = 10 5

>>> p r i n t passing_example ( my_list, my_int ) ( [ 1, 2, 3, ' nouvel item ' ], 4, chaine par d e f a u t ) >>> my_list [ 1, 2, 3, ' nouvel item ' ] >>> my_int 10 9 Classes Python supporte une forme limitée d héritage multiple entre classe. Des variables et des méthodes privées peuvent être déclarées (ceci est une convention, le langage Pyhton en lui-même n impose rien) en ajoutant au minimum deux underscore avant le nom choisi (ex: spam ). c l a s s MyClass : common = 10 d e f init ( self ) : self. myvariable = 3 d e f myfunction ( self, arg1, arg2 ) : r e t u r n self. myvariable # I n s t a n c i a t i o n de l a c l a s s e >>> classinstance = MyClass ( ) >>> classinstance. myfunction ( 1, 2) 3 # Cette v a r i a b l e e s t p a r t a g é e e n t r e t o u t e s l e s c l a s s e s. >>> classinstance2 = MyClass ( ) >>> classinstance. common 10 >>> classinstance2. common 10 # Notez l ' u t i l i s a t i o n du nom de l a c l a s s e # à l a p l a c e de l ' i n s t a n c e. >>> MyClass. common = 30 >>> classinstance. common 30 >>> classinstance2. common 30 # Ceci ne m o d i f i e r a pas l a v a r i a b l e de l a c l a s s e. >>> classinstance. common = 10 >>> classinstance. common 10 >>> classinstance2. common 30 >>> MyClass. common = 50 # Ceci n ' a pas changé car MyClass. common e s t # une v a r i a b l e d ' i n s t a n c e >>> classinstance. common 6

10 >>> classinstance2. common 50 # Cette c l a s s e h e r i t e de MyClass. L ' h é r i t a g e # e s t d é c l a r é de l a façon s u i v a n t e : # c l a s s OtherClass ( MyClass1, MyClass2, MyClassN ) c l a s s OtherClass ( MyClass ) : # L ' argument s e l f e s t p a s s é automatiquement # e t f a i t r é f é r e n c e à l ' i n s t a n c e de l a c l a s s e. Vous pouvez donc # d é f i n i r l e s v a r i a b l e d ' i n s t a n c e comme c i d e s s u s mais depuis l ' i n t é r i e u r de l a c l a s s e. d e f init ( self, arg1 ) : self. myvariable = 3 p r i n t arg1 >>> classinstance = OtherClass ( h e l l o ) hello >>> classinstance. myfunction ( 1, 2) 3 # Cette c l a s s e n ' a pas de membre nommé. t e s t. Nous pouvons # tout de même en a j o u t e r un à l ' i n s t a n c e. # Celui c i s e r a membre de l ' i n s t a n c e seulement. >>> classinstance. test = 10 >>> classinstance. test 10 Exceptions Les Exceptions en python sont gérées par des blocks de type try-except nom de l exception. Exemple: d e f some_function ( ) : t r y : # l e s d i v i s i o n par z é r o l è v e n t une e x c e p t i o n 10 / 0 except ZeroDivisionError : p r i n t Oops, d i v i s i o n par z e r o!. e l s e : # pas d ' exception, tout va bien... pass some_function ( ) Oops, division par zero!. L instruction finally: Le code contenu dans le bloc finally sera toujours exécuté, même si un exception est déclenchée dans le bloc try. 7

11 Imports Les librairies externes sont utilisées à l aide du mot clé import nom de la lib. Vous pouvez également utiliser: from libname import nom de la fonction pour importer seulement une fonction. Voici un exemple: import random from time import clock randomint = random. randint ( 1, 100) >>> p r i n t randomint 64 12 Lecture/écriture de fichiers Python possède de nombreuses librairire. Comme exemple, voici comment la est utilisée la serialisation (conversion de structure de données avec la librairie pickle) avec des Entrées/Sorties fichiers. import pickle mylist = [ This, i s, 4, 1 3327] # Ouvre l e f i c h i e r C: \ binary. dat en é c r i t u r e. La l e t t r e r avant l e # nom du f i c h i e r e s t u t i l i s é e pour empêcher l ' échappement du # c a r a c t è r e avec un a n t i s l a s h. myfile = file ( r C: \ binary. dat, w ) pickle. dump ( mylist, myfile ) myfile. close ( ) myfile = file ( r C: \ t e x t. t x t, w ) myfile. write ( Chaine exemple ) myfile. close ( ) myfile = file ( r C: \ t e x t. t x t ) >>> p r i n t myfile. read ( ) ' Chaine exemple ' myfile. close ( ) # Ouvre l e f i c h i e r en l e c t u r e. myfile = file ( r C: \ binary. dat ) loadedlist = pickle. load ( myfile ) myfile. close ( ) >>> p r i n t loadedlist [ ' This ', ' i s ', 4, 1 3 3 2 7 ] 8

13 Divers Les conditions peuvent être chaînées. 1 < a < 3 vérifie que a est inférieur à 3 et supérieur à 1. Vous pouvez utiliser del afin d effacer des variables ou des valeurs dans de tableaux. Vous pouvez manipuler et créer des listes de la manière ci-dessous (voir exemple), une instruction for initialise la liste. >>> lst1 = [ 1, 2, 3 ] >>> lst2 = [ 3, 4, 5 ] >>> p r i n t [ x y f o r x i n lst1 f o r y i n lst2 ] 3, 4, 5, 6, 8, 10, 9, 12, 15 >>> p r i n t [ x f o r x i n lst1 i f 4 > x > 1 ] 2, 3 # V é r i f i e s i un item à une p r o p r i é t é s p é c i f i q u e. # any r e t o u r n e t r u e s i une v a l e u r de l a l i s t e correpond. >>> any ( [ i % 3 f o r i i n [ 3, 3, 4, 4, 3 ] ] ) True # E x p l i c a t i o n : 4 % 3 = 1, e t 1 e s t true, donc any ( ) # r e t o u r n e True. # Compte l e nombre d ' item qui c o r r e s p o n d e n t. >>> sum (1 f o r i i n [ 3, 3, 4, 4, 3 ] i f i == 4) 2 >>> d e l lst1 [ 0 ] >>> p r i n t lst1 [ 2, 3 ] >>> d e l lst1 Le variables globales sont déclarées en dehors des fonctions avec le mot clé global. Si vous ne le faîtes pas de cette manière, Python va affecter cet objet à une variable locale (attention à ça, ça peut vous faire perdre pas mal de temps). Exemple: number = 5 d e f myfunc ( ) : # Ceci a f f i c h e r a 5. p r i n t number d e f anotherfunc ( ) : # Ceci l è v e une e x c e p t i o n car l a v a r i a b l e n ' a pas é t é # i n i t i a l i s é e avant l e p r i n t. Python a r r i v e à déterminer qu ' une v a l e u r # s e r a a f f e c t é a c e t t e v a r i a b l e p l u s tard dans l e programme. I l c r é e donc un nouvel # o b j e t de manière l o c a l e e t l ' u t i l i s e au l i e u d ' u t i l i s e r # l a v a r i a b l e g l o b a l e p r i n t number 9

number = 3 d e f yetanotherfunc ( ) : g l o b a l number # Ceci changera l a v a r i a b l e g l o b a l e. number = 3 14 Conclusion Ce tutoriel n est pas censé être une liste exaustive de tout ce que peut faire Python. Python dispose d un grand nombre de librairies et vous découvrirez plein plein d autres fonctionnalité en lisant d autres livres, tels que l excellent Dive Into Python. J espère avoir facilité votre transition vers Python. Merci de laisser vos commentaires si vous pensez que quelque chose peut être amélioré ou si vous souhaitez ajouter quelques chose à ce document (classes, gestion des erreurs ou autre...). Ce document est publié sous licence Creative Commons Attribution-Share Alike 3.0 (http://creativecommons.org/licenses/by-sa/3.0/) 10