logo

le langage



Python est un langage de programmation libre (open source) d'utilisation général et multiplateformes. Python fonctionne sous un grand nombre de plateformes incluant Linux, Windows, Mac OS X, OS/2 ainsi que les nombreuses variantes dérivées d'Unix.

Il est parfois considéré comme un langage de scripts, à tort, car il offre un grand confort dans le développement d'applications de divers types.

Sa syntaxe est concise et épurée et permet ainsi un gain de temps pour l'écriture du code. Python offre une multitude de modules en standard qui apportent des fonctionnalités allant du système à la gestion du courrier électronique, et proposent des implantations robustes de diverses structures de données.

Python allie ainsi les avantages des langages interprétés tel que le BASH et grâce à ses nombreuses fonctionnalités des langages compilés tel que Java et C.

La machine virtuelle Python permet d'exécuter le code directement sans le compiler. Il est possible d'utiliser Python de deux manières différentes : soit d'écrire du code source dans des fichiers dont l'extension sera .py, soit de taper ce code directement dans l'interpréteur.

Créé originalement par le programmeur Guido van Rossum autour de 1990. Contrairement à de nombreux langage qui sont supporté par des société, la nature open source du langage python lui permet d'évoluer grâce à la communauté des développeurs python. Une mise à jour importante à été le passage de la version 2 à la version 3. Ce cours est orienté sur la version 2.7 de python.

Sans plus attendre, commencez votre première leçon de Python : Hello world !

Les modules ou librairies

Deux modules utiles

D’abord, qu’est-ce qu’un module ? Il s’agit d’une sorte de bibliothèque (un regroupement de fonctions prédéfinies) qui une fois importée permet d’accéder à de nouvelles fonctions. Il en existe beaucoup. On peut citer :

Il y en a beaucoup d’autres, tant dans la nature (https://github.com/search?q=python+module) que dans la bibliothèque standard (http://docs.python.org/3/py-modindex.html), voire des modules que vous aurez codés vous-mêmes. Parmi ces derniers, j’ai choisi de présenter les deux qui, en classe de seconde au moins, me semblent les plus utiles: math et random.

Le module math

C’est un module qui permet d’avoir accès aux fonctions mathématiques comme le cosinus (cos), le sinus (sin), la racine carrée (sqrt), le nombre π (pi) et bien d’autres...

>>> from math import *  # importation du module
>>> cos(pi)             # cosinus d'un angle en radian
-1.0
>>> sqrt(25)            # racine carrée
5.0

En plus de ce qui a été cité précédemment, on peut ajouter les fonctions tangente (tan), partie entière (floor), exponentielle (exp) et logarithme népérien (log).

Concernant la fonction partie entière, il y en avait déjà une sans l’apport du module math. Il s’agit de int. Vous noterez une légère différence entre les deux.

>>> floor(12.123)
12.0
>>> int(12.123)
12

Le module random

En anglais “random” signifie “le hasard”. Ce module va nous permettre d’utiliser des fonctions générant des nombres aléatoires. Les trois qui me semblent le plus utile dans un premier temps sont :

>>> from random import *
>>> randint(5,10)
6
>>> random()
0.34461947461259612
>>> random()
0.024762749258158245
>>> L = [7, 3, 8, 5, 6]
>>> choice(L)
5
>>> choice(L)
3
>>> # cela marche pour une liste de chaine de caractères
>>> liste = ['Pierre', 'Paul', 'Jacques']
>>> choice(liste)
'Jacques'

Importer un module

Mais pour importer un module, la façon de procéder reste la même, ou plutôt les mêmes car il y a deux façons de faire. Voyons cela en prenant comme exemple le module math.

>>> from math import sqrt
>>> sqrt(36)
6.0
>>> cos(0)
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'cos' is not defined
Le message d’erreur signifie simplement que l’on n’a pas importé la fonction cos. Donc si on recommence

>>> from math import sqrt, cos
>>> sqrt(36)
6.0
>>> cos(0)
1.0
Et si on veut que toutes les fonctions du module soient importées, on peut procéder comme on l’a fait plus haut en utilisant l’étoile *.

>>> from math import *
>>> sqrt(36)
6.0
>>> cos(0)
1.0
C’était la première façon de faire. 

Voici la deuxième façon de faire pour importer un module.

>>> import math
>>> math.sqrt(36)
6.0
>>> math.cos(0)
1.0

Bien que cette deuxième méthode paraisse plus lourde à écrire, elle peut avoir certains avantages. Par exemple quand on importe plusieurs modules cela peut éviter des conflits.

Pour aller plus loin

Comme dit plus haut, il y a différents types de modules :

Différences entre Python2 et Python3

Pour connaitre toutes les différences entre Python2 et Python3, vous pouvez consulter cette section du site officiel. Mais voici celles qui sont les plus importantes pour le débutant.

l'instruction print

C’est desormais une fonction. Pour l’utiliser il faut donc obligatoirement utiliser des parenthèses.

La division

Plus besoin du from __future__ import division qui était nécessaire pour que la division (/) soit bien décimale. Avec Python3, on a directement :

>>> 7/2
3.5

Avec Python2, on avait :

>>> 7 / 2
3
>>> from __future__ import division
>>> # la division est maintenant décimale
>>> 7 / 2
3.5

la fonction imput

Cette fonction renvoie automatiquement une chaine de caractères, même s’il est demandé de saisir un nombre.

La fonction range

Avant, avec Python2, on avait :

>>> range(5)
[0, 1, 2, 3, 4]

mainetnant, avec Python3, on a :

>>> range(5)
range(0, 5)

Et pour avoir le contenu de la liste générée, il faut utiliser la fonction list.

>>> list(range(5))
[0, 1, 2, 3, 4]