IntroductionàPython3 1 1 Lescaractéristiquesprincipales lemaire/  · S.lemaire, Université Paris

  • View
    212

  • Download
    0

Embed Size (px)

Text of IntroductionàPython3 1 1 Lescaractéristiquesprincipales lemaire/  · S.lemaire, Université Paris

  • S.lemaire, Universit Paris Sud, L3MFA 2017-2018 1

    Introduction Python 3 1

    1 Les caractristiques principalesPython est un langage conu par Guido van Rossum. La premire version est sortie en 1991. Son code

    est libre et gratuit (sous licence Open Source CNRI). De nombreuses (( boites outils )) (appeles packages enPython) ont t dveloppes notamment pour le calcul scientifique. Nous utiliserons les packages NumPy, SciPyet Matplotlib. Il existe actuellement deux versions diffrentes de Python avec quelques diffrences de syntaxes :versions 2.7 et 3.5. Nous utiliserons la version 3.5 avec lenvironnement de programmation Spyder 3 (ScientificPYthon Development EnviRonment) tlchargeable ladresse https://pythonhosted.org/spyder.

    Donnons rapidement quelques caractristiques de Python pour le situer par rapport dautres langages. Cest un langage interprt : linterprteur excute un programme en suivant les instructions une par

    une. (En fait, Python mlange la fois du code interprt et du code compil pour plus de rapidit. Lesprogrammes sont compils au moment de leur excution en un code intermdiaire appel bytecode quiest interprt par une machine virtuelle code en C. Une grande partie du coeur du langage Python etde 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 commeargument une fonction : les types de base comme les rels, les listes, les chanes de caractres mais aussiles fichiers, les fonctions, les packages ...

    Tout objet manipulable par le programmeur possde un type bien dfini lexcution, qui na pas besoindtre dclar lavance. Les variables servent rfrencer les objets que lon utilise ; on peut changerlobjet rfrenc par une variable au cours dun programme.

    Python gre ses ressources (mmoire, descripteurs de fichiers...) sans intervention du programmeur, parun mcanisme de comptage de rfrences.

    Python permet diffrents styles de programmation : programmation imprative (ce que nous ferons),programmation objet, mais aussi fonctionnelle.

    Lindentation du code est un lment de la syntaxe de Python : un bloc dinstructions sera dfini commecompos de lignes dinstruction indentes de la mme faon et prcdes par le signe de ponctuation (( : ))

    1.1 Environnement de programmation Spyder 3Sur les ordinateurs des salles denseignement, on peut lancer lenvironnement de programmation Spyder 3,

    ddi la programmation en Python en tapant, dans un terminal, la commandespyder3 &

    1. Polycopi fait avec la version 3.5 de Python.On trouvera les codes de certains exemples dans le rpertoire /commun/doc/lemaire/M322

    https://pythonhosted.org/spyder

  • S.lemaire, Universit Paris Sud, L3MFA 2017-2018 2

    Le caractre & est optionnel : il permet de lancer un logiciel en tche de fond et donc de pouvoir lancer dautrescommandes dans le terminal pendant que le logiciel fonctionne. Il permet de disposer :

    dune fentre appele console dans laquelle est lanc un interprteur Python (zone en bas droite surlimage) permettant dexcuter des lignes dinstructions. Le prompt, qui peut tre >>> dans linterprteurde base ou In[k] pour linterprteur interactif IPython, invite taper une instruction. On utiliseralinterprteur IPython (mais pour simplifier la prsentation du code dans ce polycopi on utilise >>>pour dsigner le prompt).

    dun diteur de texte (zone gauche sur limage) qui permettra dcrire un ensemble dinstructionsPython et de les enregistrer dans un fichier avec lextension .py. On pourra lancer lexcution de cefichier dans linterprteur Python laide de la touche F5 ou de licne reprsentant une flche verte (ilest aussi possible de nexcuter que quelques lignes de code du fichier. Passer la souris sur les diffrentesicnes du menu de Spyder pour voir apparatre leurs fonctions).

    dune aide interactive en plus de laide de IPython 2 (fentre intitule "Inspecteurs dobjet" en haut droite sur limage). Aller dans le menu "Outils" puis "prfrences" pour configurer cette aide interactiveafin par exemple de faire que la documentation sur une fonction apparaisse automatiquement lorsquontape une parenthse ouvrante.

    Dans le menu Aide, se trouve un tutoriel expliquant le fonctionnement de Spyder.

    2 Les variables2.1 Laffectation

    Les objets disposent dune valeur que lon peut faire afficher en utilisant la commande print(objet), duntype que lon obtient en tapant type(objet) et dun identifiant id(objet) qui joue le rle dune adresse pourtrouver lobjet dans lespace mmoire de lordinateur.

    Exemple 1.>>> print(200)200>>> type(200)int>>> id(200)10920736

    Dans cet exemple, un objet de type int (pour (( integer ))) est cre dans lespace de mmoire avec lidentifiant10920736.

    Les variables servent rfrencer des objets (ce sont des noms servant dsigner des objets plus simplementque leur identifiant) . On utilise le symbole = pour effectuer une affectation dun objet dans une variable :

    variable = objet

    Exemple 2.>>> a = 200>>> type(a), id(a)(int, 10920736)

    La variable a rfrence lentier 200. Le type et lidentifiant de a sont ceux de lobjet que a rfrence.

    NB : pour optimiser la place mmoire, certains objets comme les petits entiers ne sont crs quen un exemplairedans la mmoire.

    >>> b = a + 10>>> id(a + 10), id(b)(10921056, 10921056)>>> a = b>>> id(a)10921056

    2. L annexe A.1 dcrit quelques commandes daide utilisables dans la console.

  • S.lemaire, Universit Paris Sud, L3MFA 2017-2018 3

    A lexcution de la commande b = a + 10, lexpression droite du signe = est valu, le rsultat est unnouvel objet de type int qui est plac en mmoire avec lidentifiant 10921056. Cet objet est ensuite affect lavariable b.Lorsquon excute ensuite la commande a = b, on obtient deux variables a et b qui rfrencent le mme objet210.

    NB : Python libre de faon automatique de la place mmoire en supprimant les objets qui ne sont plus rf-rencs par une variable.

    On peut effectuer plusieurs affectations de variables simultanment : de chaque ct du signe "=", on spareles noms des variables et les objets par des virgules.

    Exemple 3.a, b = 3, 10

    La variable a rfrence lentier 3 et la variable b lentier 10.

    Exercice 1. Affecter deux entiers distincts des variables x et y. Puis excuter linstructionx, y = y, x

    Quel est lobjectif de cette instruction ?

    2.2 Nom autoris pour une variableLe nom dune variable ne peut contenir que des caractres alphanumriques (lettres de lalphabet en minus-

    cules ou majuscules, les chiffres) ou _ (lunderscore) ; les espaces, les autres caractres spciaux tels que $, #,etc. sont interdits. Il ne peut pas commencer par un chiffre. Python distingue les minuscules des majuscules. Ilest dusage de commencer le nom dune variable par une lettre minuscule. Il existe un certain nombre de motsrservs au langage (voir annexe A.2) et les variables commenant par un _ ont un statut particulier.

    Le tableau suivant donne quelques caractres ayant une signification syntaxique dans Python (la significationsera prcise plus tard).

    Caractres rservs# pour crire un commentaire sur une ligne""" pour marquer le dbut et la fin dun commentaire crit sur plusieurs lignes" ou pour marquer le dbut et la fin dune chane de caractres; pour sparer deux instructions crites sur une mme ligne, pour sparer deux lments dune squence\ pour une instruction crite sur plusieurs lignes : indique, avant un passage la ligne,

    que linstruction se poursuit la ligne suivante.? nom? permet dobtenir laide sur une commande ou un objet: pour marquer le dbut dun bloc dinstructionsespace en dbut deligne

    pour distinguer les instructions appartenant un bloc dinstructions

    2.3 Les types de base prdfinis dans PythonContrairement dautres langages, la commande a = b ne provoque pas la duplication de lobjet rfrenc

    par b. On verra que cette diffrence est importante lorsque la valeur de lobjet rfrenc par b est modifiable(i.e. quand la valeur de lobjet peut changer en gardant le mme identifiant). Cest pourquoi on distingue dansPython les objets dits immuables, des objets mutables.Les tableaux ci-dessous dcrivent les types des objets immuables et mutables de base (hors packages compl-mentaires).

  • S.lemaire, Universit Paris Sud, L3MFA 2017-2018 4

    Types immuables exempleint entier de taille illimite (limite seulement par lespace mmoire

    alloue Python).200

    float nombre virgule cod en utilisant lcriture en flottant sur 64bites selon la norme IEEE 754 (voir annexe A.4)

    3.5

    complex nombre complexe crit en notation cartsienne : a + bj, a et btant de type float et reprsentant les parties relles et imagi-naires respectivement (le nombre imaginaire j devra tre prcdimmdiatement dun chiffre pour ne pas tre vu comme le nomdune variable : on lcrira 1j ou 1.j)

    3.5 + 2j

    bool boolen True ou Falsestr chanes de caractres i.e. liste ordonne de caractres dlimite

    soit par des apostrophes , soit par des guillemets ", soit par 3guillemets de suite pour des chanes crites sur plusieurs lignes.

    "figure 3"

    tuple suite ordonne dobjets de types htrognes (2,"Jean",3.5)frozenset ensemble non ordonn dobjets distincts et immuables frozenset({1,aa})Types mutables exemplelist suite ordonne dobjets de types htrognes (le parcours dune

    liste est moins rapide que celui dun tuple)[aa,2, [3]]

    dict ensemble non ordonn de couples (cl : valeur), o cl est un objetimmuable

    {a : 2, n : Luc}

    set ensemble non ordonn dobjets distincts et immuables {1,aa}

    NB : Les chanes de caractres, les listes et les ensembles sont des exemples dobjets appels (( conteneurs )) cardestins contenir plusieurs objets.

    NB : (3) dfinit lentier 3. Le tuple ayant