S.lemaire, Université Paris Sud, L3MFA 2017-2018 1 Introduction à Python 3 1 1

S.lemaire, Université Paris Sud, L3MFA 2017-2018 1 Introduction à Python 3 1 1 Les caractéristiques principales Python est un langage conçu par Guido van Rossum. La première version est sortie en 1991. Son code est libre et gratuit (sous licence Open Source CNRI). De nombreuses ( ( boites à outils ) ) (appelées packages en Python) ont été développées notamment pour le calcul scientifique. Nous utiliserons les packages NumPy, SciPy et Matplotlib. Il existe actuellement deux versions différentes de Python avec quelques différences de syntaxes : versions 2.7 et 3.5. Nous utiliserons la version 3.5 avec l’environnement de programmation Spyder 3 (Scientific PYthon Development EnviRonment) téléchargeable à l’adresse https://pythonhosted.org/spyder. Donnons rapidement quelques caractéristiques de Python pour le situer par rapport à d’autres langages. — C’est un langage interprété : l’interpréteur exécute un programme en suivant les instructions une par une. (En fait, Python mélange à la fois du code interprété et du code compilé pour plus de rapidité. Les programmes sont compilés au moment de leur exécution en un code intermédiaire appelé bytecode qui est interprété par une machine virtuelle codée en C. Une grande partie du coeur du langage Python et de ses packages annexes sont écrits en C et compilé en langage natif). — Tout est un objet dans Python dans le sens où tout peut être assigné à une variable ou passé comme argument à une fonction : les types de base comme les réels, les listes, les chaînes de caractères mais aussi les fichiers, les fonctions, les packages ... — Tout objet manipulable par le programmeur possède un type bien défini à l’exécution, qui n’a pas besoin d’être déclaré à l’avance. Les variables servent à référencer les objets que l’on utilise ; on peut changer l’objet référencé par une variable au cours d’un programme. — Python gère ses ressources (mémoire, descripteurs de fichiers...) sans intervention du programmeur, par un mécanisme de comptage de références. — Python permet différents styles de programmation : programmation impérative (ce que nous ferons), programmation objet, mais aussi fonctionnelle. — L’indentation du code est un élément de la syntaxe de Python : un bloc d’instructions sera défini comme composé de lignes d’instruction indentées de la même façon et précédées par le signe de ponctuation ( ( : ) ) 1.1 Environnement de programmation Spyder 3 Sur les ordinateurs des salles d’enseignement, on peut lancer l’environnement de programmation Spyder 3, dédié à la programmation en Python en tapant, dans un terminal, la commande spyder3 & 1. Polycopié fait avec la version 3.5 de Python. On trouvera les codes de certains exemples dans le répertoire /commun/doc/lemaire/M322 S.lemaire, Université Paris Sud, L3MFA 2017-2018 2 Le caractère & est optionnel : il permet de lancer un logiciel en tâche de fond et donc de pouvoir lancer d’autres commandes dans le terminal pendant que le logiciel fonctionne. Il permet de disposer : — d’une fenêtre appelée console dans laquelle est lancé un interpréteur Python (zone en bas à droite sur l’image) permettant d’exécuter des lignes d’instructions. Le prompt, qui peut être >>> dans l’interpréteur de base ou In[k] pour l’interpréteur interactif IPython, invite à taper une instruction. On utilisera l’interpréteur IPython (mais pour simplifier la présentation du code dans ce polycopié on utilise >>> pour désigner le prompt). — d’un éditeur de texte (zone à gauche sur l’image) qui permettra d’écrire un ensemble d’instructions Python et de les enregistrer dans un fichier avec l’extension .py. On pourra lancer l’exécution de ce fichier dans l’interpréteur Python à l’aide de la touche F5 ou de l’icône représentant une flèche verte (il est aussi possible de n’exécuter que quelques lignes de code du fichier. Passer la souris sur les différentes icônes du menu de Spyder pour voir apparaître leurs fonctions). — d’une aide interactive en plus de l’aide de IPython 2 (fenêtre intitulée "Inspecteurs d’objet" en haut à droite sur l’image). Aller dans le menu "Outils" puis "préférences" pour configurer cette aide interactive afin par exemple de faire que la documentation sur une fonction apparaisse automatiquement lorsqu’on tape une parenthèse ouvrante. Dans le menu Aide, se trouve un tutoriel expliquant le fonctionnement de Spyder. 2 Les variables 2.1 L’affectation Les objets disposent d’une valeur que l’on peut faire afficher en utilisant la commande print(objet), d’un type que l’on obtient en tapant type(objet) et d’un identifiant id(objet) qui joue le rôle d’une adresse pour trouver l’objet dans l’espace mémoire de l’ordinateur. Exemple 1. >>> print(200) 200 >>> type(200) int >>> id(200) 10920736 Dans cet exemple, un objet de type int (pour ( ( integer ) )) est crée dans l’espace de mémoire avec l’identifiant 10920736. Les variables servent à référencer des objets (ce sont des noms servant à désigner des objets plus simplement que leur identifiant) . On utilise le symbole = pour effectuer une affectation d’un objet dans une variable : variable = objet Exemple 2. >>> a = 200 >>> type(a), id(a) (int, 10920736) La variable a référence l’entier 200. Le type et l’identifiant de a sont ceux de l’objet que a référence. NB : pour optimiser la place mémoire, certains objets comme les petits entiers ne sont créés qu’en un exemplaire dans la mémoire. >>> b = a + 10 >>> id(a + 10), id(b) (10921056, 10921056) >>> a = b >>> id(a) 10921056 2. L’ annexe A.1 décrit quelques commandes d’aide utilisables dans la console. S.lemaire, Université Paris Sud, L3MFA 2017-2018 3 A l’exécution de la commande b = a + 10, l’expression à droite du signe = est évalué, le résultat est un nouvel objet de type int qui est placé en mémoire avec l’identifiant 10921056. Cet objet est ensuite affecté à la variable b. Lorsqu’on exécute ensuite la commande a = b, on obtient deux variables a et b qui référencent le même objet 210. NB : Python libère de façon automatique de la place mémoire en supprimant les objets qui ne sont plus réfé- rencés par une variable. On peut effectuer plusieurs affectations de variables simultanément : de chaque côté du signe "=", on sépare les noms des variables et les objets par des virgules. Exemple 3. a, b = 3, 10 La variable a référence l’entier 3 et la variable b l’entier 10. Exercice 1. Affecter deux entiers distincts à des variables x et y. Puis exécuter l’instruction x, y = y, x Quel est l’objectif de cette instruction ? 2.2 Nom autorisé pour une variable Le nom d’une variable ne peut contenir que des caractères alphanumériques (lettres de l’alphabet en minus- cules ou majuscules, les chiffres) ou _ (l’underscore) ; les espaces, les autres caractères spéciaux tels que $, #, etc. sont interdits. Il ne peut pas commencer par un chiffre. Python distingue les minuscules des majuscules. Il est d’usage de commencer le nom d’une variable par une lettre minuscule. Il existe un certain nombre de mots réservés au langage (voir annexe A.2) et les variables commençant par un _ ont un statut particulier. Le tableau suivant donne quelques caractères ayant une signification syntaxique dans Python (la signification sera précisée plus tard). Caractères réservés # pour écrire un commentaire sur une ligne """ pour marquer le début et la fin d’un commentaire écrit sur plusieurs lignes " ou ’ pour marquer le début et la fin d’une chaîne de caractères ; pour séparer deux instructions écrites sur une même ligne , pour séparer deux éléments d’une séquence \ pour une instruction écrite sur plusieurs lignes : indique, avant un passage à la ligne, que l’instruction se poursuit à la ligne suivante. ? nom ? permet d’obtenir l’aide sur une commande ou un objet : pour marquer le début d’un bloc d’instructions espace en début de ligne pour distinguer les instructions appartenant à un bloc d’instructions 2.3 Les types de base prédéfinis dans Python Contrairement à d’autres langages, la commande a = b ne provoque pas la duplication de l’objet référencé par b. On verra que cette différence est importante lorsque la valeur de l’objet référencé par b est modifiable (i.e. quand la valeur de l’objet peut changer en gardant le même identifiant). C’est pourquoi on distingue dans Python les objets dits immuables, des objets mutables. Les tableaux ci-dessous décrivent les types des objets immuables et mutables de base (hors packages complé- mentaires). S.lemaire, Université Paris Sud, L3MFA 2017-2018 4 Types immuables exemple int entier de taille illimitée (limitée seulement par l’espace mémoire allouée à Python). 200 float nombre à virgule codé en utilisant l’écriture en flottant sur 64 bites selon la norme IEEE 754 (voir annexe A.4) 3.5 complex nombre complexe écrit en notation cartésienne : a + bj, a et b étant de type float et représentant les parties réelles et imagi- naires respectivement (le nombre imaginaire j devra être précédé immédiatement d’un chiffre pour ne pas être vu comme le nom d’une variable : on l’écrira 1j ou 1.j) 3.5 + 2j bool booléen True ou False str chaînes de caractères i.e. liste ordonnée de caractères délimitée soit par des apostrophes ’, soit par des guillemets ", soit par 3 uploads/S4/ polyl3python-pdf.pdf

  • 50
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Aoû 10, 2021
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 0.6099MB