UKOnline

Python

Le langage de programmation Python a été créé par Guido van Rossum en 1990 et est rendu disponible sous licence libre. Son développement est aujourd'hui assuré par la Python Software Foundation, fondée en 2001. Il s'agit d'un langage interprété fonctionnant sur la plupart des plateformes informatiques (notamment Linux, Windows et MacOS). Il est également très apprécié des pédagogues qui le considèrent comme étant un bon langage pour s'initier aux concepts de base de la programmation.

La figure 1 montre le logo de Python à gauche de son créateur, Guido van Rossum. En 1999, ce dernier a soumis un projet auprès de la DARPA (Defense Advanced Research Projects Agency), une agence du département de la Défense des États-Unis chargée du développement des nouvelles technologies destinées à un usage militaire. Dans sa proposition, appelée « Computer Programming for Everybody » (document original), il définit les buts suivants pour Python :

  • le langage doit être simple et intuitif, et aussi puissant que les principaux concurrents ;
  • il doit être open source, afin que quiconque puisse contribuer à son développement ;
  • le code doit être aussi compréhensible qu'un texte en anglais ;
  • il doit être adapté aux tâches quotidiennes, et permettre des courts délais de développement.
Logo Python et Guido van Rossum
Le langage Python a été créé par Guido van Rossum en 1990, programmeur néerlandais qui a travaillé pour Google pendant sept ans. Il travaille maintenant pour Dropbox depuis janvier 2013.

Depuis sa création, le succès du langage n'a cessé de croitre, jusqu'à le porter parmi les dix langages de programmation les plus populaires. Il s'agit d'un langage de haut niveau, à usage général. Les dernières versions stables du langage sont la 2.7.12 (25 juin 2016) et la 3.5.2 (27 juin 2016). Ces deux versions, communément appelées Python 2 et Python 3, continuent toutes les deux d'exister, essentiellement pour des raisons de compatibilité. Dans ce livre, nous utiliserons la version 3.

Python est utilisé dans de nombreux projets, de types différents. Il est notamment utilisé comme langage de script pour des applications web. Il est également très présent dans des applications de calculs scientifiques, et est intégré dans de nombreux logiciels de modélisation, comme langage de script. Enfin, il est aussi utilisé dans le développement de jeux vidéos ou dans l'écriture de tâches dans le domaine de l'intelligence artificielle.

Hello World!

Une fois n'est pas coutume, lorsqu'il s'agit de présenter la syntaxe d'un langage de programmation, on utilise comme exemple le programme Hello World. Il s'agit simplement d'un programme qui affiche les deux mots « Hello World » à l'écran, avant de se terminer.

Voici ce que cela donne en Python :

Quoi de plus simple ? Python inclut une fonction prédéfinie print qui affiche à l'écran la séquence de caractères qu'on lui fournit. Cette unique ligne de code constitue notre premier programme Python.

Mode interactif et mode script

L'exécution d'un programme Python se fait à l'aide d'un interpréteur. Il s'agit d'un programme qui va traduire les instructions écrites en Python en langage machine, afin qu'elles puissent être exécutées directement par l'ordinateur. Cette traduction se fait à la volée, tout comme les interprètes traduisent en temps réel les interventions des différents parlementaires lors des sessions du parlement Européen, par exemple. On dit donc que Python est un langage interprété.

Il y a deux modes d'utilisation de Python. Dans le mode interactif, aussi appelé mode console, l'interpréteur vous permet d'encoder les instructions une à une. Aussitôt une instruction encodée, il suffit d'appuyer sur la touche ENTER pour que l'interpréteur l'exécute.

La figure 2 à la page suivante montre le programme Hello World en mode interactif. Les lignes qui commencent par >>> sont l'invite de commande qui vous propose d'encoder une instruction. Si cette dernière produit un résultat, il est affiché une fois l'instruction exécutée. Voici donc l'instruction qui a été encodée et le résultat qu'elle a produit :

>>> print('Hello World!')
Hello World!
Logo Python et Guido van Rossum
Dans le mode interactif, les instructions sont exécutées une à une par l'interpréteur Python, au fur et à mesure que vous les encodez.

Pour quitter le mode interactif, il suffit d'exécuter l'instruction exit(). Il s'agit de nouveau d'une fonction prédéfinie de Python permettant de quitter l'interpréteur.

Le mode interactif est très pratique pour rapidement tester des instructions et directement voir leurs résultats. Son utilisation reste néanmoins limitée à des programmes de quelques instructions. En effet, devoir à chaque fois retaper toutes les instructions s'avèrera vite pénible.

Il existe également le mode script où vous devez avoir préalablement écrit toutes les instructions de votre programme dans un fichier texte, et l'avoir enregistré sur votre ordinateur. On utilise généralement l'extension de fichier .py pour des fichiers contenant du code Python. Une fois cela fait, l'interpréteur va lire ce fichier et exécuter son contenu, instruction par instruction, comme si vous les aviez tapées l'une après l'autre dans le mode interactif. Les résultats intermédiaires des différentes instructions ne sont par contre pas affichés; seuls les affichages explicites (avec la fonction print, par exemple) se produisent.

Calculatrice Python

On peut utiliser l'interpréteur Python en mode interactif comme une calculatrice. En effet, si vous y tapez une expression mathématique, cette dernière sera évaluée et son résultat affiché comme résultat intermédiaire. Rappelez-vous que cela ne fonctionne pas avec le mode script. Voici, par exemple, une succession d'instructions encodées en mode interactif, ainsi que les résultats produits :

>>> 42
42
>>> 2 * 12
24
>>> 2 ** 10
1024
>>> ((19.99 * 1.21) - 5) / 4
4.796975

Python propose plusieurs opérateurs arithmétiques repris dans la figure 3. Il y a évidemment les classiques : l'addition (+), la soustraction (-), la multiplication (*) et la division (/). On retrouve également l'exponentiation (**) qui permet d'élever un nombre à une certaine puissance. Enfin, il reste deux autres opérateurs (// et %), destinés au calcul avec des nombres entiers.

Description Notation
Addition +
Soustraction -
Multiplication *
Division /
Exponentiation **
Division entière //
Reste de la division entière %
Python propose sept opérateurs arithmétiques que l'on peut utiliser pour construire des expressions mathématiques.

Priorité

Les opérateurs arithmétiques possèdent chacun une priorité qui définit dans quel ordre les opérations sont effectuées. Par exemple, lorsqu'on écrit 1 + 2 * 3, la multiplication va se faire avant l'addition. Le calcul qui sera effectué est donc 1 + (2 * 3). Dans l'ordre, l'opérateur d'exponentiation est le premier exécuté, viennent ensuite les opérateurs *, /, // et %, et enfin les opérateurs + et -.

Lorsqu'une expression contient plusieurs opérations de même priorité, ils sont évalués de gauche à droite. Ainsi, lorsqu'on écrit 1 - 2 - 3, le calcul qui sera effectué est (1 - 2) - 3. En cas de doutes, vous pouvez toujours utiliser des parenthèses pour rendre explicite l'ordre d'évaluation de vos expressions arithmétiques.

Division entière et son reste

Deux opérations arithmétiques sont exclusivement utilisées pour effectuer des calculs en nombres entiers : la division entière (//) et le reste de la division entière (%). Lorsqu'on divise un nombre entier $D$ (appelé dividende) par un autre nombre entier $d$ (appelé diviseur), on obtient deux résultats : un quotient $q$ et un reste $r$, tels que :

$$D = q \times d + r \qquad (\textrm{avec } r < d).$$

La valeur $q$ est le résultat de la division entière et la valeur $r$ celui du reste de cette division. Par exemple, si on divise $17$ par $5$, on obtient un quotient de $3$ et un reste de $2$ puisque $17 = 3 \times 5 + 2$.

Ces deux opérateurs sont très utilisés dans plusieurs situations précises. Par exemple, pour déterminer si un nombre entier est pair ou impair, il suffit de regarder le reste de la division entière par deux. Le nombre est pair s'il est nul et est impair s'il vaut $1$. Une autre situation où ces opérateurs sont utiles concerne les calculs de temps. Si on a un nombre de secondes et qu'on souhaite le décomposer en minutes et secondes, il suffit de faire la division par $60$. Le quotient sera le nombre de minutes et le reste le nombre de secondes restant. Par exemple, $175$ secondes correspond à 175 // 60 $= 2$ minutes et 175 % 60 $= 55$ secondes.