Programmation orientée Objet Auteur : Nahla Zaaboub Haddar Auditoire : Première

Programmation orientée Objet Auteur : Nahla Zaaboub Haddar Auditoire : Première Année Mastère SINT Laboratoire : MIRACL Année univ. : 2020-2021 1 Plan du cours  Introduction  Rappel des bases du language Python  Programmation objet  Structures de données  Visualisation de données  Extraction et filtrage de données 2 INTRODUCTION 3 Qu’est ce que le calcul scientifique ?  Le calcul scientifique est l'utilisation de l‘ordinateur (la calculatrice) et des langages de programmation pour résoudre un problème numérique  Les problèmes à résoudre sont souvent mathématiques  La résolution consiste à : Développer un algorithme pour traiter le problème Implémenter l’algorithme pour le calcul Effectuer la simulation numérique en produisant des données Valider le comportement de la méthode et les résultats obtenus Analyser les performances du calcul Analyser et visualiser les résultats 4  Le calcul scientifique repose sur l'utilisation de scalaires, de vecteurs et de matrices et de tout outil mathématique qui leur est associé (produit, transposé, extremum, etc.) 5  Plusieurs langages et outils de programmations peuvent être mis en œuvre pour le calcul scientifique : Python Java MatLab Meaple … 6 RAPPEL DES BASES DU LANGAGE PYTHON 7 Qu’est ce que Python ?  Python est un langage de programmation inventé en 1991 par Guido van Rossum  Il est source libre  Il est un langage objet interprété, multi-paradigmes et multi-plateformes  Il est doté de typage dynamique fort + gestion automatique de la mémoire par ramasse-miettes + système de gestion d'exceptions 8  Il possède de nombreuses bibliothèques optimisées destinées au calcul numérique (numpy, scipy, pandas, mathplotlib, pyml, etc.).  Il permet le travail en mode interactif ou fichier. 9 Environnements de développement avec Python  Python : IDLE  Anaconda:JupyterNote book  PyCharm  Spyder (Scientific Python DevelopmentEnvironme nt)  Eclipse+pluginPyDev  Atom  … 10 Popularité du langage python Les top 10 des langages de programmation (IndexTIOBE, juin 2020) 11 Popularité du langage python  Les top 5 des spécialistes Python Reddit Spotify Youtube Dropbox 12 Accents Le langage Python s’appuie sur la langue anglaise et il faut lui préciser explicitement lorsque le programme contient des accents. Le message suivant indique que c’est le cas : SyntaxError: Non-ASCII character ’\xe9’ in file pl.py on line 7, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details Il faut ajouter en première ligne du programme : Ou pour insérer tout caractère, latin ou asiatique : # coding: utf-8 # coding: latin-1 13 Commentaires  Tout ce qui suit # ou entre "' "' est ignoré (ou presque) par Python # pour un commentaire sur une seule ligne "' "' pour un commentaire sur plusieurs lignes  Les commentaires servent à expliquer ce qui se passe dans une portion de code documenter qui a écrit le code ou d’autres informations désactiver une ligne de code (peut-être temporairement) 14 Mots-clés and del from not while as elif global or with assert else if pass yield break except import class exec in raise continue finally is isinstance return def for lambda try 15 Variables Une variable est caractérisée par : un identificateur : il peut contenir des lettres, des chiffres, des blancs soulignés mais il ne peut commencer par un chiffre. Minuscules et majuscules sont différenciées. Il est aussi unique. un type : c’est une information sur le contenu de la variable qui indique à l’interpréteur Python la manière de manipuler cette information. Convention de nommage (PEP 20) : var ma_variable print ( ) La fonction print () permet d’afficher le contenu de n’importe quelle variable va = 10 print(va) # affiche le contenu de la variable va 16 Types numériques et opérations arithmétiques  Types numériques : int : type entier, compris entre 2 milliards float : type réel, environ 15 chiffres de précision (Il est possible d’augmenter la précision en utilisant gmpy).  Opérations arithmétiques : + Addition * Multiplication / Division - Soustraction ** Puissance // Division entière % Modulo 17 Il est préférable d’écrire des opérations sur le même type. Dans le cas contraire, le type float l’emporte sur le type int. x1 = 5.5 x2 = 6 y1 = 3.3 y2 = 7 d = ((x1-x2)**2 + (y1-y2)**2) ** 0.5 # distance euclidienne q = 5/3 # q vaut 1.6666666666666667 q = 5//3 # q vaut 1 r = 5%3 # r vaut 2 n = 5 n += 10 # n vaut 15 18 Instructions conditionnelles  Les instructions conditionnelles permettent de faire dépendre une séquence d’instructions d’une condition.  Les instructions concernées doivent être décalées (indentées) par rapport aux mots-clés if et else.  La condition est évaluée à l’une des valeurs True ou False. 19 if <condition> : … # instructions si la condition est vraie (ligne indentée) else : … # instructions si la condition est fausse (ligne indentée) 20  Il est possible d’assembler les conditions avec les opérateurs logiques and, or et not.  Les opérateurs de comparaisons ou d’appartenance sont ==, !=, <, >, <=, >=, in.  Il est possible d’imbriquer plusieurs tests à l’aide du mot-clé elif  Exemples : a = 0 if (y == 1 or x == 2) : a = max(x,y ) if x > 0 : y = log (x) else : y = log(-x) if a > b : print(a) elif a< b: print(b) else : print(0) Boucle for  La boucle for parcourt les éléments d’une séquence (liste, tuple, …).  Elle répète une séquence d’instructions autant de fois que le nombre d’élément dans la liste. 21 for <element> in <sequence> : … # instructions à répéter (ligne indentée) for i in [1,2,3,4,5]: print(i**2)  Exemple : Boucle for  La boucle for la plus couramment utilisée est celle qui parcourt une liste d’entiers.  Elle utilise la fonction range( ) : range(b) énumère les entiers 0,1,2, …,b-1 range(a,b) énumère les entiers a,a+1, …, b-1 range(a,b,c) énumère les entiers a, a+c, a+2c, …, a+nc où n est le plus grand entier vérifiant a +nc < b si c est positif et a +nc > b si c est négatif.  Exemple : 22 for x in range (2, 5) : print(x , x**2) break et continue  break et continue sont deux instructions qui viennent perturber le déroulement d’une boucle.  L’instruction break arrête la boucle à l’endroit même où elle est exécutée.  L’instruction continue passe directement à l’itération suivante sans exécuter les lignes suivantes. 23 m = [ 5, 6, 3, 6, 7] for v in m : if (v%3)==0 : print(v) break m = [ 0, 5, 6, 3, 6, 7] s = 1 for e in m : if e == 0 : continue s *= e Boucle while  Une boucle while exécute une suite d’instructions tant qu’une certaine condition est vraie. 24 while <condition> : … # instructions à répéter (ligne indentée)  Exemple : x = 10 while x > 0 : print(x) x -= 1 Chaînes de caractères On utilise les chaînes de caractères pour représenter toutes les informations qui ne sont pas numériques (du texte le plus souvent). Elles apparaissent entre guillemets simples ou doubles.  Opérations Des opérations sont disponibles + et * s = ’abc’ + ’def’ # s vaut ’abcdef’ s = ’abc’ * 3 # s vaut ’abcabcabc’ s+= ‘d’ # s vaut ’abcabcabcd’ 25 Manipulation des chaînes de caractères s = "programmation objet" n = len (s) # n vaut 19, la longueur de s t = s.lower() # t vaut "programmation objet", minuscules t = s.upper() # t vaut "PROGRAMMATION OBJET", # majuscules liste = s.split(sep=" ") # découpe s en utilisant " " comme séparateur. # liste vaut ["programmation", "objet"] t = s.replace ("a", "_") # remplace toutes les occurrences de "a" par "_" # t vaut "progr_mm_tion objet" n = s.find ("a") # retourne la position de la première occurrence de # "a" dans s, -1 si "a" n’est pas trouvé. n vaut 5  Fonctions de chaînes de caractères : 26 Manipulation des chaînes de caractères  Les chaînes de caractères peuvent être indexées (i.e. on peut accéder aux caractères par leur position)  le premier caractère d’une chaîne étant à la position 0  Il n’existe pas de type distinct pour les caractères, un caractère est simplement une chaîne de longueur 1 word = 'Python' s = word[0] # s vaut 'P' s = word[5] # s vaut 'n‘ s = word[-1] # dernier caractère. s vaut 'n‘ s = word[-2] # avant dernier caractère. s vaut 'o' 27 Manipulation des chaînes de caractères  Il est aussi possible de « trancher » (slice en anglais) une chaîne.  Accéder à une chaîne par un indice permet d’obtenir un caractère, trancher permet d’obtenir une sous-chaîne s = word[2:5] # caractères à partir de la position 2 (incluse) à 5 (exclue) # s vaut 'tho'  Les valeurs par défaut des indices de tranches sont :  le premier indice vaut zéro par défaut (i.e. lorsqu’il est uploads/Science et Technologie/ courspython20-21-seancedu23-10-2020 1 .pdf

  • 24
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager