Cet article est principalement dédié aux programmateurs n'ayant jamais touché au Python et voulant avoir un aperçu de ce langage interprété très rigoureux.
Dans un premier temps, nous verrons comment se servir de l'interpréteur Python, puis la manipulation des variables et la récupération de données entrées par un utilisateur, et enfin les conditions (if, while, for, etc.). En conclusion, je vous ferai un bref aperçu de l'importation de modules et de librairies.
Actuellement, sur la plupart des machines, le Python est intallé par défaut. Pour le vérifier, ouvrez un Invité de Commandes(si vous êtes sous Windows) ou une console (si vous êtes sous une distrib Unix-like) et tapez simplement python (s'il y a une erreur, déduissez-en que le Python n'est pas installé, et allez donc l'installer en cliquant ici).
Ne fermez pas votre terminal car c'est grâce à lui que l'on va pouvoir utiliser l'interpréteur. En effet, tapper python et voilà ce qui devrait s'afficher:
n0x@Debian-AMD64:~$ python Python 2.3.5 (#2, May 5 2005, 10:59:31) [GCC 3.3.5 (Debian 1:3.3.5-12)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
Tout d'abord, il faut savoir que les commentaires en Python sont précédés d'un dièse ('#') et les commandes, s'il n'y en a qu'une seule par ligne, ne se termine pas avec un point-virgule.
Comme en C, les variables en Python n'ont pas de symbôles précédant leurs noms. De plus, le nom des variables doit commencer par une lettre ou un underscore ("_").
Pour donner une valeur à une variable, il suffit de la lui attribuer en mettant le nom de la variable suivi du symbole égal puis un nombre ou une chaine de caractères entre guillemets. Voici un petit récapitulatif sur les variables:
>>> 1_truc=2 # FAUX File "<stdin>", line 1 1_truc=2 # FAUX ^ SyntaxError: invalid syntax >>> _truc=1 # correct >>> chaine_de_caracteres="une chaine quelconque" >>> chaine1="truc"; chaine2="machin" # deux commandes successives, il y a donc un
point-virugle entre elles >>>
>>> liste1=[] #on créé une liste vide >>> liste2=['index0','index1','ainsi','de','suite'] # on peut créer une liste en lui
attribuant directement des éléments >>> print liste2[0] #affiche 'index0' car on commence à compter à partir de 0 et non
à partir de 1, comme dans la plupart des langages de programmation index0 >>> print liste2[4] suite >>> print liste2[5] # va afficher une erreur car cette liste n'a pas de valeur
en position 5 Traceback (most recent call last): File "<stdin>", line 1, in ? IndexError: list index out of range >>>
Le Python, comme le Perl d'ailleurs, a plusieurs moyens natifs de manipulation des variables. Dans ce petit tutoriel, je ne vais pas parler de toutes les méthodes de manipulation des variables, seulement de quelques unes qui sont, à mon avis, les plus connues et les plus pratiques. Comme toutes les méthodes en Python, les méthodes de manipulation des variables s'emploient de la façon suivante: variable.methode(argument1[,argument2,etc.]). Je donnerai un exemple de toutes ces méthodes à la fin de cette section avec un listing.
Commençons par split() qui permet de séparer, dans une variable qui contient une chaine de caractères, les chaines de part et d'autre d'un ou plusieurs caractères. L'équivalent de cette fonction est explode() en php (enfin presque car vous verrez plus tard, dans l'exemple récapitulatif qu'il y a une différence).
Il y a aussi replace() qui permet de remplacer un certain nombre (que vous pouvez définir) d'occurences d'une chaine dans une variable par une autre chaine.
Concernant l'esthétique, il existe quelques méthode sympatiques telles upper() qui retourne la même chaine de caractères mais en lettres capitales, lower() qui est l'inverse de upper(), swapcase() qui transforme toutes les majuscules en miniscules (et vise-versa) et center() qui permet de centrer un texte dans un certain nombre d'espaces.
Voici le petit récapitulatif:
>>> ch1="une chaine de caracteres"
>>> ch1_split = ch1.split(' ') # mettez entre parantèses le caractère ou la chaine de
caractères qu'il faut trouver pour séparer la chaine d'origine
>>> print ch1_split
['une', 'chaine', 'de', 'caracteres']
>>> ch2 = "il y a beaucoup de e dans cette chaine et on va les remplacer par des a"
>>> ch2_aucun_e = ch2.replace('e','a') # arg1 = chaine à remplacer;
arg2 = chaine de remplacement; arg3 = nombre de remplacements à faire (optionnel)
>>> print ch2_aucun_e
il y a baaucoup da a dans catta chaina at on va las ramplacar par das a
>>> ch2_moins_5_e = ch2.replace('e','a',5) # arg1 = chaine à remplacer;
arg2 = chaine de remplacement; arg3 = nombre de remplacements à faire (optionnel)
>>> ch2_moins_5_e
'il y a baaucoup da a dans catta chaine et on va les remplacer par des a'
>>> ch3="une chaine en minuscules"
>>> print ch3.upper()
UNE CHAINE EN MINUSCULES
>>> print ch4.lower()
une chaine en majuscules
>>> ch5 = "PaRlOnS uN pEu CoMmE dEs LeEtS"
>>> print ch5.swapcase()
pArLoNs Un PeU cOmMe DeS lEeTs
>>> ch6 = "centrons ceci"
>>> ch6.center(30)
' centrons ceci '
>>> var = "0123456789" >>> var[2:] '23456789' >>> var[:2] '01' >>> var[2:5] '234'
Comme pour les variables normales, on peut manipuler les listes en ajoutant et en retirant des éléments (par exemple), mais bien plus encore. Je vais procéder de la même façon que précédemment, c'est à dire que l'exemple sera enfin de section.
Commençons par append() qui permet, comme son nom l'indique en anglais, d'ajouter un élément à la fin de la liste.
Ensuite, une autre méthode connue est insert() qui permet d'insérer un élément à une position donnée.
remove() permet de supprimer la première occurence d'une valeur d'un élément (voir exemple).
pop() permet de supprimer l'élément de la position que vous spécifiez.
Enfin, une dernière méthode bien connue est count() qui permet de compter le nombre d'éléments identiques dans une liste.
Avant de mettre l'exemple, je précise que vous pouvez faire exactement comme pour les variables 'normale' si vous souhaitez en sélectionner une partie (voir la dernière ligne de l'exemple suivant):
>>> list1=['une','liste','banale','sauf','qu\'elle','contient','deux','fois',
'le','meme','mot','liste'] >>> list1.append('un element en plus') >>> print list1 ['une', 'liste', 'banale', 'sauf', "qu'elle", 'contient', 'deux', 'fois',
'le', 'meme', 'mot', 'liste', 'un element en plus'] >>> list1.insert(1,'deuxieme element') >>> print list1[1] #0 est le premier élément, 1 le second, etc. deuxieme element >>> list1.remove('deuxieme element') >>> print list1 ['une', 'liste', 'banale', 'sauf', "qu'elle", 'contient', 'deux', 'fois',
'le', 'meme', 'mot', 'liste', 'un element en plus'] >>> list1.pop(10) 'mot' >>> print list1 ['une', 'liste', 'banale', 'sauf', "qu'elle", 'contient', 'deux', 'fois',
'le', 'meme', 'liste', 'un element en plus'] >>> list1.count('liste') 2 >>> list1[5:] ['contient', 'deux', 'fois', 'le', 'meme', 'liste', 'un element en plus'] >>> list1[5:10] ['contient', 'deux', 'fois', 'le', 'meme'] >>>
En Python, comme dans la plupart des langages, c'est fort simple, il suffit d'appeler une fonction: raw_input(). Vous avez le choix entre afficher un message puis faire appel à raw_input() ou simplement d'appeler raw_input avec, comme premier argument, le message (une question par exemple). Cette seconde méthode permet de ne pas avoir de retour chariot entre la question et la réponse. J'illustre dans l'exemple suivant les deux moyens:
>>> print "Bonjour. Quel est votre nom? "; nom1=raw_input()
Bonjour. Quel est votre nom?
N-0-X
>>> print nom1
N-0-X
>>> # et maintenant, la seconde méthode
...
>>> nom1=raw_input('Quel est votre nom? ')
Quel est votre nom? N-0-X
>>> print nom1
N-0-X
>>>
if, elif, else
Cette condition est sûrement l'une des plus répandue dans tous les langages de programmation. Elle permet de vérifier une simple condition. En Perl, Php, C, C++ (et j'en passe beaucoup), on écrit la condition entre parenthèses puis on ouvre une accolade pour que le programme sache quelles commandes exécuter si la condition est vérifiée. Le Python étant un langage très rigoureux dont le code est très lisible, au lieu de mettre une accolade, on met simplement un double-point (':') puis on retourne à la ligne (de préférence), puis on fait une indentation avant les commandes. Cette indentation est indispensable pour toutes les conditions si vous retournez à la ligne.
Voici un exemple qui illustre trois façons d'employer une condition if, elif, else:
>>> var1 = "Machin"; var2= "Truc"; var3 = "Noxistes" >>> if var1=="Truc": ... print "var1 == \"Truc\"" ... print "Vous avez bien lu, var1 == \"Truc\"" ... elif var2 == "noxistes.org": print "L'adresse du site est dans var2";print "Vous
avez aussi bien lu" ... elif len(var3) == len(var1): ... print "la fonction len() permet d'avoir la longueur d'une variable" ... else: ... print "Aucune condition n'est remplie" ... Aucune condition n'est remplie >>>
>>> for x in range(len(liste)): ... print "l'élément %s contient %s"% (x,liste[x]) ... l'élément 0 contient élément1 l'élément 1 contient élément2 l'élément 2 contient Noxistes l'élément 3 contient et l'élément 4 contient Python l'élément 5 contient ça r0x l'élément 6 contient etc. l'élément 7 contient je ne sais pas l'élément 8 contient quoi rajouter >>>
>>> while(nombre < 10):
... print "Nombre est égal à %s" % nombre
... nombre+=1 # ici
...
Nombre est égal à 0
Nombre est égal à 1
Nombre est égal à 2
Nombre est égal à 3
Nombre est égal à 4
Nombre est égal à 5
Nombre est égal à 6
Nombre est égal à 7
Nombre est égal à 8
Nombre est égal à 9
>>>
Les libriaries et modules
Les libraries et les modules ont été créé pour vous faciliter la vie lorsque vous programmez, donc utilisez-les! Elles ont été codées par de très bons programmeurs Python. Pour s'en servir, il y a deux méthodes. La première est d'importer toute la librairie, et la seconde est de n'importer qu'une ou plusieurs fonctions de cette librairie.
import time # on a importé toute la libraire from math import log # on n'a ici importé que la fonction log de la librairie math
#voyons à présent comment s'en servir en fonction de la façon dont on l'a importé >>> print time.time() #on ajoute le 'time.' avant le nom de la fonction de la
librairie parce qu'on importé tout la lib 1125770998.84 >>> print log(4) #on n'ajoute pas 'math.' avant le nom de la fonction car on n'a
importé que la fonction 1.38629436112 >>>
Comme vous avez pu le voir durant ce tutoriel, le Python est un langage rigoureux (avec les indentations notamment) mais très puissant grâce aux modules, à la rapidité, à la facilité et au débogage (grâce à l'indication des erreurs très précises). De plus, l'interpréteur est un outil très utile et donc fort pratique.
Je vous donne rendez-vous au prochain chapitre de ce tutoriel dans lequel vous y apprendrez les definitions (l'équivalent des fonctions[function truc(){}] dans beaucoup de langages) et les classes.
À la prochaine ;-)