Introduction au langage python



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

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Programmation Web. Madalina Croitoru IUT Montpellier

Présentation du langage et premières fonctions

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

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Java Licence Professionnelle CISII,

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Chapitre I Notions de base et outils de travail

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

«Clustering» et «Load balancing» avec Zope et ZEO

TP 1. Prise en main du langage Python

Évaluation et implémentation des langages

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

Éléments de programmation et introduction à Java

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

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

STAGE IREM 0- Premiers pas en Python

La technologie Java Card TM

Programmer en JAVA. par Tama

Calcul Scientifique avec 3

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

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

Bases de données cours 1

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

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

PostgreSQL, le cœur d un système critique

Cours d Algorithmique et de Langage C v 3.0

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

Traduction des Langages : Le Compilateur Micro Java

Introduction à MATLAB R

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

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

Gestion des utilisateurs dans un environnement hétérogène

TP1. Outils Java Eléments de correction

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

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

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

Annexe : La Programmation Informatique

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Vérification formelle de la plate-forme Java Card

Programmation en Java IUT GEII (MC-II1) 1

Mise en oeuvre d'une base de données mono-utilisateur avec SQLite

Une introduction à Java

Système de Gestion de Ressources

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Définitions. Numéro à préciser. (Durée : )

Mise en œuvre des serveurs d application

Présentation du PL/SQL

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Développement de projets logiciels à l'aide de Python

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

Programmation. fonctionnelle, impérative, logique et orientée objet

Classes et Objets en Ocaml.

modules & compilation

UE C avancé cours 1: introduction et révisions

Utiliser Java sans BlueJ

Devenez un véritable développeur web en 3 mois!

Introduction au langage C

Hébergement de site web Damien Nouvel

Les bases du langage Python

Eole - gestion des dictionnaires personnalisés

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

Installation de DocBook sur un système Linux

ACTIVITÉ DE PROGRAMMATION

Télécom Nancy Année

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Gestion d identités PSL Exploitation IdP Authentic



Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Chapitre 2 Devine mon nombre!

A. Architecture du serveur Tomcat 6

SYSTÈMES DE PUBLICATION POUR L INTERNET. Beatep Marie-France Landréa - Observatoire de Paris

I-JVM: une machine virtuelle Java pour l isolation de composants dans OSGi

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Environnements de développement (intégrés)

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Chapitre VI- La validation de la composition.

CMS Open Source : état de l'art et méthodologie de choix

Cours 1: Java et les objets

Intérêt du NAT (Network Address Translation) Administration Réseau Niveau routage. Exemple d Intranet. Principe NAT

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Vulgarisation Java EE Java EE, c est quoi?

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

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques

Gestion hybride de la mémoire dynamique dans les systèmes Java temps-réel

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Java Licence Professionnelle CISII,

Le stockage local de données en HTML5

Java DataBaseConnectivity

A5.2.3, Repérage des compléments de formation ou d'autoformation

Conventions d écriture et outils de mise au point

Transcription:

Introduction au langage python Gauthier Picard SMA/G2I/ENS Mines Saint-Etienne gauthierpicard@emsefr Introduction au langage python Gauthier Picard 1 / 36

Sommaire 1 Les bases de Python 2 Fonctions et classes 3 Modules et paquetages 4 Références Introduction au langage python Gauthier Picard 2 / 36

Sommaire 1 Les bases de Python Introduction La syntaxe de Python Les types de Python 2 Fonctions et classes 3 Modules et paquetages 4 Références Introduction au langage python Gauthier Picard 3 / 36

Historique Développé en 1990 par Guido van Rossum En 1995, sortie de Python 161, compatible GPL Actuellement, deux versions en parallèle : 27 et 323 Licence Sous propriété de la Python Software Foundation (PSF) Licence libre proche de la licence BSD Introduction au langage python Gauthier Picard 4 / 36

Caractéristiques très clair, syntaxe lisible de fortes capacités d introspection expression naturelle de code procédural modularité totale, avec paquets hiérarchiques gestion des exceptions nombreux types de base : listes, chaînes, tables de hachage gestion transparente de la mémoire par référence comptage manipulation des références, pas des pointeurs lambda-calcul, fonctions anonymes orienté objet intuitive : classes, héritage, exceptions typage dynamique : «duck typing» vastes bibliothèques standard et des modules de tierces parties extensions et modules en C, C ++ (ou Java pour Jython, ou langages NET pour IronPython) intégrable dans les applications comme scripts d interfaçage Introduction au langage python Gauthier Picard 5 / 36

Modes d exécution Un langage interprété Le programme en mode interactif Le programme : un shell Python évolué La fonction pour évaluer du code dans python Un langage compilé Compilation en bytecode de machine virtuelle (comme Java) Les fichiers sont générés dynamiquement Introduction au langage python Gauthier Picard 6 / 36

Syntaxe simple Éléments de syntaxe Nombres : Chaînes : Expressions : Affectations : Commentaires : Règles de syntaxe de Python Une instruction par ligne, pas de séparateur Affectations multiples autorisées : Les affections n ont pas de valeur Introduction au langage python Gauthier Picard 7 / 36

Blocs Pas de délimiteurs (pas de et de ) L indentation délimite les blocs Utilisation : conditions, boucles, fonctions Exemple (Bloc dans condition) Introduction au langage python Gauthier Picard 8 / 36

Conditions Syntaxe de Syntaxe de base : Clause : Contraction du : Les opérateurs booléens Les opérateurs s écrivent en toutes lettres :,, Le et le sont court-circuits La valeur est la dernière expression évaluée : vaut 2 Introduction au langage python Gauthier Picard 9 / 36

Boucles La boucle Syntaxe de base : Fonctionne comme en Java La boucle Syntaxe de base : Un iterable est un objet supportant le protocole itération (eg les listes) Exemple (Boucle for avec range) Introduction au langage python Gauthier Picard 10 / 36

Types atomiques Tout est objet, en Python! (méthodes et attributs) Les types simples Nombres (entiers, flottants, complexes) :,, Les booléens : et Le type spécial Les types complexes Le type fichier : Des types divers, comme ou Introduction au langage python Gauthier Picard 11 / 36

Listes et tuples Séquences d éléments ordonnés Listes mutable Tuples immutable Syntaxe : Opérateurs et fonctions Accès à un élement :, Syntaxe : Accès à une série d éléments (slice) :, Copie d une liste : Longueur : Appartenance : Concaténation : Duplication : Introduction au langage python Gauthier Picard 12 / 36

Chaînes délimitées par et chaînes multilignes : et immutables Méthodes et opérateurs Méthodes :,,, Se comportent comme des tuples de caractères L opérateur : formatage simple et avancé comme en C Introduction au langage python Gauthier Picard 13 / 36

Dictionnaires Tables de hachage clés de type immutable et objets de type mutable ou pas Utilisation Création de dictionnaire vide : Création de dictionnaire non vide : Accès à un élément : Méthodes :,, Exemple (Boucle sur un dictionnaire) Introduction au langage python Gauthier Picard 14 / 36

Sommaire 1 Les bases de Python 2 Fonctions et classes Les fonctions Les classes Les exceptions 3 Modules et paquetages 4 Références Introduction au langage python Gauthier Picard 15 / 36

Fonctions Syntaxe : Valeur de retour : Le passage de paramètres Valeur par défaut Appel classique : ou Appel nommé : ou Appel mixte : Exemple (Définition de fonction avec valeur par défaut) Introduction au langage python Gauthier Picard 16 / 36

Les objets de type Les fonctions sont des objets comme les autres On peut donc les passer en paramètres (programmation fonctionnelle) Utilité : par exemple, la méthode Les lambdas Fonctions anonymes Ne peuvent contenir qu une expression Exemple (Appel à la fonction sort() avec lambda) Introduction au langage python Gauthier Picard 17 / 36

Documentation (ou doc string) Une doc string est un commentaire visible par Python (comme en Java) Exploitable par pour générer une documenation HTML (comme ) Elle se met en première ligne d une fonction, classe ou module Elle peut être récupérée par l attribut et la méthode interactive Exemple (Documentation par doc string) Introduction au langage python Gauthier Picard 18 / 36

Fonctions à arguments variables On passe les paramètres depuis ou vers des conteneurs l opérateur convertit des arguments non nommés en tuple l opérateur convertit des arguments nommés en dictionnaire Exemple (Utilisation de l opérateur *) Exemple (Utilisation de l opérateur **) Introduction au langage python Gauthier Picard 19 / 36

Déclaration des classes Syntaxe L héritage peut se faire sur n importe quelle classe, ou sur Créer un objet se fait en appelant la classe Sémantique Toutes les méthodes sont virtuelles L héritage multiple est possible (résolution des conflits C3) Fonction et attribut Méthodes privées avec prefixe Introduction au langage python Gauthier Picard 20 / 36

Déclaration des classes (suite) Exemple (Définition d une classe) Introduction au langage python Gauthier Picard 21 / 36

Méthodes liées et libres Le paramètre Toute méthode prend en premier paramètre l objet lui-même Par convention, on l appelle Les méthodes libres et liées Lorsqu une méthode est récupérée sur un objet, elle est dite bound Lorsqu une méthode est récupérée sur une classe, elle est dite unbound L objet est implicite dans les méthodes liées, mais doit être spécifié dans les méthodes libres Introduction au langage python Gauthier Picard 22 / 36

Méthodes liées et libres (suite) Exemple (Méthode liée et non liée) Introduction au langage python Gauthier Picard 23 / 36

Méthodes statiques Pour créer une méthode statique, il faut écrire une méthode sans le et utiliser le décorateur Exemple (Déclaration d une méthode statique) Introduction au langage python Gauthier Picard 24 / 36

Principes des exceptions Très similaires aux exceptions en Java Elle se propage, remontant la pile d appel, jusqu à être interceptées Une exception est une classe héritant de la classe Exemple d exceptions Génériques : Liées au code :,, Liées au système :,, Introduction au langage python Gauthier Picard 25 / 36

Traitement des exceptions Le bloc Du code pouvant génére une exception peut (et non pas doit) être entouré d un bloc et d un bloc Le code présent dans le sera exécuté jusqu à ce qu une exception survienne Le code se trouvant dans le ne sera exécuté que si une exception survient Le stoppe la propagation de l exception Exemple (Traitement d une exception) Introduction au langage python Gauthier Picard 26 / 36

Traitement des exceptions (suite) Récupération plus évoluée Un type peut être précisé dans la clause, pour ne récupérer qu un type d exceptions Toutes les exceptions héritant de ce type seront aussi interceptées Il est possible d avoir plusieurs bloc de suite Tous les autres cas peuvent être interceptés par la clause On peut également récupérer l objet de type exception avec la syntaxe Introduction au langage python Gauthier Picard 27 / 36

Traitement des exceptions (suite) Exemple (Traitement évolué d une exception) Introduction au langage python Gauthier Picard 28 / 36

Nettoyage : traitement après interception La clause Lorsqu une erreur survient, on peut avoir besoin de nettoyer Le code de la clause sera exécuté systématiquement, après le reste La clause ne stoppe pas la propagation Exemple (Clause finally) Introduction au langage python Gauthier Picard 29 / 36

Déclenchement La clause Déclencher une exception se fait avec le mot-clé Dans une clause, un sans paramètre propage l exception courante Exemple (Déclenchement d une exception) Introduction au langage python Gauthier Picard 30 / 36

Sommaire 1 Les bases de Python 2 Fonctions et classes 3 Modules et paquetages Utilisation de modules et paquetages Définition de modules et paquetages 4 Références Introduction au langage python Gauthier Picard 31 / 36

Utilisation de modules et paquetages La clause Permet d importer un module externe On peut préciser un nom avec Exemple (Import d un module) Introduction au langage python Gauthier Picard 32 / 36

Utilisation de modules et paquetages (suite) La clause Permet d importer des symboles directement dans l espace courant Permet de n importer que ce dont on a besoin Il est possible, mais déconseillé, d utiliser Exemple (Clause from) Introduction au langage python Gauthier Picard 33 / 36

Définition de modules et paquetages Création de modules Un module est un fichier définissant des symboles Le code est exécuté à l importation (sauf cas ) Un module peut en importer d autres, mais pas de manière circulaire Création de paquetages Un paquetage est répertoire contenant des modules (et éventuellement des paquetages) Il doit contenir un fichier Introduction au langage python Gauthier Picard 34 / 36

Sommaire 1 Les bases de Python 2 Fonctions et classes 3 Modules et paquetages 4 Références Références utiles Introduction au langage python Gauthier Picard 35 / 36

Références utiles Ce support est très largement inspiré du support de par Gaël LE MIGNOT & Jérôme PETAZZONI : http ://courspilotsystemsnet/cours-insia/cours-de-python-a-linsia-pour-ing1-et-ing2srt/slideshowpdf Livres et liens divers la documentation officielle de python : http ://docspythonorg/indexhtml un cours qui reprend le tutoriel en grande partie, en français : http ://webuniv-paufr/ puiseux/enseignement/python/pythonpdf un très bon livre, gratuit et complet : http ://inforefbe/swi/download/apprendrepythonpdf traduction en français d un livre référence : http ://diveintopythonadrahonorg/ association francophone python : http ://wwwafpyorg/ une fiche synthétique bien pratique : http ://rgruetfreefr/pqr27/pqr27html Introduction au langage python Gauthier Picard 36 / 36