« Python/L'interpréteur » : différence entre les versions

Une page de Wikiversité, la communauté pédagogique libre.
Contenu supprimé Contenu ajouté
RM77 (discussion | contributions)
RM77 (discussion | contributions)
petite refonte
Ligne 7 : Ligne 7 :
}}
}}


Il existe deux manières de coder en Python. La première, la plus classique pour ceux qui ont déjà travaillé avec d'autres langages de programmation, est d'écrire des fichiers de code source (dont l'extension est ''.py''), puis d'exécuter ces fichiers, à la manière du [[Perl]].<br>
== Installation ==
La seconde, qui est abordée dans ce cours, est d'utiliser l'interpréteur.
Télécharger les sources depuis [http://www.python.org/download/ le site officiel].


== Pré-requis ==
Si vous n'avez pas les droits administrateurs de votre machine, il existe aussi [http://www.portablepython.com/ une version portable].
Il faut tout d'abord vérifier que Python est installé sur votre machine, et l'installer dans le cas contraire.


=== Sous [[w:Windows|Windows]] ===
=== Sur [[w:Macintosh|Macintosh]] ===
Python 2.3 est pré-installé depuis Mac OS X 10.3 Panther. Pour bénéficier des nouveautés du langage, il est nécessaire de mettre à jour Python. Pour cela, il faut se rendre sur la [http://www.python.org/getit/ page de téléchargements] de Python et télécharger l'exécutable Mac. L'assistant d'installation s'occupera du reste.
Après l'installation, il y a 2 façons de lancer l'application :
# Sous [[w:DOS|DOS]], il est possible d'enregistrer le chemin d'accès à python dans les [[w:variables d'environnement|variables d'environnement]] pour écrire directement "python", au lieu de par exemple "C:\Python26\python".
# Installer [http://www.cygwin.com/ Cygwin] et taper "python" dans le terminal [[w:Unix|Unix]].


=== Sous [[w:Macintosh|Macintosh]] ===
=== Sur [[w:Linux|Linux]] ===
Python est généralement pré-installé sur les distributions grand public. Pour vérifier que Python est bien installé, il suffit de lancer dans un terminal :
Python 2.3 est pré-installé depuis OS X 10.4 Tiger.

=== Sous [[w:Linux|Linux]] ===
Python est pré-installé depuis la version Ubuntu 6.04. Pour les autres distributions, s'il ne l'est pas il faut regarder dans les dépôts. Pour vérifier si Python est bien installé, il suffit de lancer dans un terminal :
<source lang="bash">
<source lang="bash">
$ python -V # V majuscule
$ python -V # V majuscule
Ligne 30 : Ligne 26 :
<source lang="bash">
<source lang="bash">
$ sudo apt-get update # Mise à jour des dépôts
$ sudo apt-get update # Mise à jour des dépôts
$ sudo apt-get install python # Installation
$ sudo apt-get install python # Installation de la dernière version de Python stable
</source>
</source>


Si votre distribution ne possède pas de paquets Python, vous pouvez compiler Python depuis ses sources. Pour cela, il suffit de se rendre sur [http://www.python.org/getit/ http://www.python.org/getit/], puis de suivre les instructions.
Si votre distribution ne possède pas de paquets Python, ou si vous désirez effectuer des tests avec une version particulière, il est possible de Python depuis ses sources. Pour cela, il suffit de se rendre sur [http://www.python.org/getit/ http://www.python.org/getit/], puis de suivre les instructions.


=== Version installée ===
=== Sur [[w:Windows|Windows]] ===
Sur Windows, il est nécessaire de télécharger un installeur, comme sur Mac. Rendez-vous sur [http://www.python.org/getit/ http://www.python.org/getit/] pour le trouver.

Si vous n'avez pas les droits administrateurs de votre machine, il existe aussi [http://www.portablepython.com/ une version portable].

== L'interpréteur ==
La version de l'interpréteur est visible au lancement :
La version de l'interpréteur est visible au lancement :
<source lang="text">
<source lang="text">
>>> Python
$ python
$ python
Python 2.5.2 (r252:60911, Jan 24 2010, 14:53:14)
ActivePython 2.6.1.1 (ActiveState Software Inc.) based on
[GCC 4.3.2] on linux2
Python 2.6.1 (r261:67515, Dec 5 2008, 13:58:38) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
Type "help", "copyright", "credits" or "license" for more information.
>>>
</source>
</source>
Depuis cette invite de commande, il est possible d'exécuter n'importe quelle instruction Python en tapant cette instruction et en validant grâce à la touche "Entrée" d'un clavier d'ordinateur standard.
Depuis cette invite de commande, il est possible d'exécuter n'importe quelle instruction Python en tapant cette instruction et en validant grâce à la touche "Entrée" d'un clavier d'ordinateur standard. C'est cet interpréteur qui va être utilisé dans la suite de ce cours.

Dans l'introduction était mentionné la possibilité d'interpréter un code source Python, car des contraintes évidentes de réutilisation du code apparaissent. Pour ce faire, il suffit d'entrer dans une console Unix ou DOS : <code>python nom_du_programme.py</code>.


Lors de l'exécution d'un programme Python, la machine virtuelle tentera d'opérer à des optimisations en produisant du byte-code dans un fichier d'extension ''.pyc'' pour chaque fichier d'extension ''.py''.
Pour exécuter un programme Python, lancer le fichier "nom_du_programme.py". Pour faire apparaître le résultat dans la fenêtre de l'invite de commande, taper sous Unix ou DOS :
<code>python nom_du_programme.py</code>.


== Les commandes de base ==
== Les commandes de base ==
=== Print() ===
=== print() ===
Affiche du texte :
Affiche du texte :
<source lang="python">
<source lang="python">
Ligne 60 : Ligne 61 :
</source>
</source>
:Attention : il existe des caractères spéciaux qui ne seront pas affichés :
:Attention : il existe des caractères spéciaux qui ne seront pas affichés :
* \t : tabulation ;
# \r : aller en début de ligne.
# \n : aller à la ligne (retour chariot).
* \n : saut à la ligne (retour chariot) ;
* ...

<source lang="python">
<source lang="python">
>>> print("Bonjour \n tout le monde !")
>>> print("Bonjour \n tout le monde !")
Ligne 68 : Ligne 71 :
</source>
</source>


=== Len() ===
=== len() ===
Renvoie la longueur du [[w:paramètre|paramètre]] :
Renvoie la longueur du [[w:paramètre|paramètre]] :
<source lang="python">
<source lang="python">
>>> len("texte à mesurer")
>>> len("texte a mesurer")
15
15
>>>
>>>
Ligne 145 : Ligne 148 :


: L'interpréteur respecte la [[w:Sensibilité_à_la_casse|casse]].
: L'interpréteur respecte la [[w:Sensibilité_à_la_casse|casse]].
: Les espaces ([[w:indentation|indentation]]) sont interprétées comme l'inclusion des blocs entre eux. Sauter une ligne fait sortir ces blocs. Cependant, hormis ces cas l'interpréteur n'est pas sensible à la présence d'espace dans le code :
: Les espaces ([[w:indentation|indentation]]) en début de ligne sont interprétés comme l'inclusion des blocs entre eux. Sauter une ligne fait sortir ces blocs. Cependant, hormis ces cas l'interpréteur n'est pas sensible à la présence d'espace dans le code :


<source lang="python">
<source lang="python">
Ligne 156 : Ligne 159 :
>>> print("Bonjour le monde!")
>>> print("Bonjour le monde!")
Bonjour le monde !
Bonjour le monde !
>>> x= "Bonjour le monde !"
>>> x = "Bonjour le monde !"
>>> print (x)
>>> print (x)
Bonjour le monde !
>>> print x # on peut se passer des parenthèses
Bonjour le monde !
Bonjour le monde !
>>> printx
>>> printx
Ligne 175 : Ligne 180 :
</source>
</source>


=== Help() ===
=== help() ===
Elle permet d'accéder au manuel des commandes Python, ex :
Elle permet d'accéder au manuel des commandes Python, ex :
<source lang="text">
<source lang="python">
>>> help("dir")
>>> help("dir")
Help on built-in function dir in module __builtin__:
Help on built-in function dir in module __builtin__:
Ligne 198 : Ligne 203 :


Exemple pour trouver tous les opérateurs et méthodes disponibles avec les nombres décimaux :
Exemple pour trouver tous les opérateurs et méthodes disponibles avec les nombres décimaux :
<source lang="text">
<source lang="python">
>>> help(1.5)
>>> help(1.5)
Help on float object:
Help on float object:
Ligne 217 : Ligne 222 :
</source>
</source>


=== Dir() ===
=== dir() ===
Affiche les méthodes utilisables avec l'objet en argument :
Affiche les méthodes utilisables avec l'objet en argument :
<source lang="text">
<source lang="python">
>>> dir("textes")
>>> dir("chaine")
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__
format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__get
format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__get
Ligne 235 : Ligne 240 :


On peut donc exécuter toutes ces méthodes avec un texte, ex :
On peut donc exécuter toutes ces méthodes avec un texte, ex :
<source lang="text">
<source lang="python">
>>> "textes".capitalize() # Met la première lettre en majuscule
>>> "textes".capitalize() # Met la première lettre en majuscule
'Textes'
'Textes'
>>>
</source>
</source>



Version du 5 août 2011 à 01:27

Début de la boite de navigation du chapitre
L'interpréteur
Icône de la faculté
Chapitre no {{{numéro}}}
Leçon : Python
Chap. préc. :sommaire
Chap. suiv. :Les types de base
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Python : L'interpréteur
Python/L'interpréteur
 », n'a pu être restituée correctement ci-dessus.

Il existe deux manières de coder en Python. La première, la plus classique pour ceux qui ont déjà travaillé avec d'autres langages de programmation, est d'écrire des fichiers de code source (dont l'extension est .py), puis d'exécuter ces fichiers, à la manière du Perl.
La seconde, qui est abordée dans ce cours, est d'utiliser l'interpréteur.

Pré-requis

Il faut tout d'abord vérifier que Python est installé sur votre machine, et l'installer dans le cas contraire.

Sur Macintosh

Python 2.3 est pré-installé depuis Mac OS X 10.3 Panther. Pour bénéficier des nouveautés du langage, il est nécessaire de mettre à jour Python. Pour cela, il faut se rendre sur la page de téléchargements de Python et télécharger l'exécutable Mac. L'assistant d'installation s'occupera du reste.

Sur Linux

Python est généralement pré-installé sur les distributions grand public. Pour vérifier que Python est bien installé, il suffit de lancer dans un terminal :

$ python -V     # V majuscule

Cette commande vous donnera le numéro de version du Python installé, ou une erreur s'il n'est pas installé.

Dans une distribution basée sur Debian comme Ubuntu, il suffit d'installer les paquets avec le gestionnaire de paquets apt :

$ sudo apt-get update           # Mise à jour des dépôts
$ sudo apt-get install python   # Installation de la dernière version de Python stable

Si votre distribution ne possède pas de paquets Python, ou si vous désirez effectuer des tests avec une version particulière, il est possible de Python depuis ses sources. Pour cela, il suffit de se rendre sur http://www.python.org/getit/, puis de suivre les instructions.

Sur Windows

Sur Windows, il est nécessaire de télécharger un installeur, comme sur Mac. Rendez-vous sur http://www.python.org/getit/ pour le trouver.

Si vous n'avez pas les droits administrateurs de votre machine, il existe aussi une version portable.

L'interpréteur

La version de l'interpréteur est visible au lancement :

$ python
Python 2.5.2 (r252:60911, Jan 24 2010, 14:53:14)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

Depuis cette invite de commande, il est possible d'exécuter n'importe quelle instruction Python en tapant cette instruction et en validant grâce à la touche "Entrée" d'un clavier d'ordinateur standard. C'est cet interpréteur qui va être utilisé dans la suite de ce cours.

Dans l'introduction était mentionné la possibilité d'interpréter un code source Python, car des contraintes évidentes de réutilisation du code apparaissent. Pour ce faire, il suffit d'entrer dans une console Unix ou DOS : python nom_du_programme.py.

Lors de l'exécution d'un programme Python, la machine virtuelle tentera d'opérer à des optimisations en produisant du byte-code dans un fichier d'extension .pyc pour chaque fichier d'extension .py.

Les commandes de base

print()

Affiche du texte :

>>> print ("Bonjour le monde !")
Bonjour le monde !
>>> print ("texte à répéter, " * 3)
texte à répéter, texte à répéter, texte à répéter,
Attention : il existe des caractères spéciaux qui ne seront pas affichés :
  • \t : tabulation ;
  • \n : saut à la ligne (retour chariot) ;
  • ...
>>> print("Bonjour \n tout le monde !")
Bonjour
 tout le monde !

len()

Renvoie la longueur du paramètre :

>>> len("texte a mesurer")
15
>>>

Les opérateurs

L'interpréteur peut effectuer des actions ne nécessitant pas de mots spécifiques au langage Python, comme de simples opérations mathématiques :

>>> (4+3)*6
42

Cependant les opérateurs suivants ont des sens bien spécifiques :

Opérateur Rôle Méthode équivalente
# (dièse) Introduction d'un commentaire
"" (guillemets) ou '' (apostrophes) Encadrement du texte
+ (plus) Addition, et concaténation de chaînes de caractères add(), et concat()
- (moins) Négation, soustraction neg(), sub()
* (étoile) Multiplication de chiffres, ou wildcard des caractères mul()
/ (barre oblique), et // Division de chiffres div(), truediv(), et floordiv()
< Inférieur à lt()
> Supérieur à gt()
<= Inférieur ou égal à le()
>= Supérieur ou égal à ge()
= (égal) Définition de variable(s)
== Égal à eq()
!=, ou <> (chevrons) Différent de ne()
() (parenthèses) Appel d'une fonction ou méthode call()
[] (crochets) Accès à une liste indexée getitem(), getslice()
, (virgule) Séparation de paramètres
. (point) Virgule décimale, ou séparation des paramètres avec leur méthode
** (étoiles) Puissance (ou exposant) pow()
% Modulo mod()
+= Incrémentation
-= Décrémentation
<< Modification de gauche lshift()
>> Modification de droite rshift()
& (et commercial) Bit à bit "et" and()
| (barre verticale) Bit à bit "ou" or()
^ (accent circonflexe) Bit à bit "ou exclusif" xor()
~ (tilde) Bit à bit "inversion" invert()
L'interpréteur respecte la casse.
Les espaces (indentation) en début de ligne sont interprétés comme l'inclusion des blocs entre eux. Sauter une ligne fait sortir ces blocs. Cependant, hormis ces cas l'interpréteur n'est pas sensible à la présence d'espace dans le code :
>>> 9/3
3
>>> 9                 /   3 # les espaces ne sont pas pris en compte
3
>>> print ("Bonjour le monde!")
Bonjour le monde !
>>> print("Bonjour le monde!")
Bonjour le monde !
>>> x = "Bonjour le monde !"
>>> print (x)
Bonjour le monde !
>>> print x     # on peut se passer des parenthèses
Bonjour le monde !
>>> printx
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
NameError: name 'printx' is not defined
L'interpréteur exécute les instructions en temps réel, dès qu'elles sont validées par l'utilisateur. Ainsi, il n'est pas possible d'exécuter plusieurs blocs d'instructions en une seule fois.
>>> def f(x):    # Déclaration d'une fonction
  print 9*x+5

>>> f(8)
77

help()

Elle permet d'accéder au manuel des commandes Python, ex :

>>> help("dir")
Help on built-in function dir in module __builtin__:

dir(...)
    dir([object])  list of strings

    If called without an argument, return the names in the current scope.
    Else, return an alphabetized list of names comprising (some of) the attributes
    of the given object, and of attributes reachable from it.
    If the object supplies a method named __dir__, it will be used; otherwise
    the default dir() logic is used and returns:
      for a module object: the module's attributes.
      for a class object:  its attributes, and recursively the attributes
        of its bases.
      for any other object: its attributes, its class's attributes, and
        recursively the attributes of its class's base classes.
>>>

Exemple pour trouver tous les opérateurs et méthodes disponibles avec les nombres décimaux :

>>> help(1.5)
Help on float object:

class float(object)
 |  float(x)  floating point number
 |
 |  Convert a string or number to a floating point number, if possible.
 |
 |  Methods defined here:
 |
 |  __abs__(...)
 |      x.__abs__() <==> abs(x)
 |
 |  __add__(...)
 |      x.__add__(y) <==> x+y
...

dir()

Affiche les méthodes utilisables avec l'objet en argument :

>>> dir("chaine")
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__
format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__get
slice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mo
d__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
 '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook
__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center',
 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index
', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper',
'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', '
rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', '
strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

On peut donc exécuter toutes ces méthodes avec un texte, ex :

>>> "textes".capitalize()    # Met la première lettre en majuscule
'Textes'