1. Algorithmique et programmation en Python

1.1. Introduction

L'objectif de ce cours est l'apprentissage de l'algorithmique afin de résoudre des problèmes grâce à l'outil informatique. La mise en application est réalisée au travers du langage Python qui dispose de nombreuses bibliothèques et permet de réaliser rapidement des programmes afin de pouvoir les tester.

En ce qui concerne Python, c'est un langage assez récent puisque la première version date de 1991.

Il a été créé par Guido van Rossum et le nom Python fait référence au Monty Python's Flying Circus.

Voici rapidement quelques spécificités du langage :

  • le langage est interprété
  • le typage est dynamique
  • la casse est discriminatoire : on distingue majuscules et minuscules ce qui implique que x et X sont deux choses différentes
  • on utilise les tabulations pour indenter le code et faire apparaître sa structure

1.1.1. langage interprété

On distingue les langages interprétés (PHP, Python) des langages compilés (C, C++).

Pour un langage compilé, un programme appelé compilateur transforme le code en instructions exécutables par le microprocesseur de l'ordinateur.

Pour un langage interprété, un programme appelé interpréteur lit une instruction, l'exécute, puis passe à la suivante.

Le constat est qu'un langage compilé génère du code qui s'exécute beaucoup plus rapidement qu'un langage interprété (cf fractales de Mandelbrot, facteur d'amélioration de 420 / 6 = 70).

On peut, pour mieux appréhender ce concept, utiliser une analogie : imaginons que vous ne parliez que français et que vous soyez amené à consulter un livre en russe. Deux possibilités s'offrent à vous :

1.1.2. typage dynamique

En informatique, on distingue le typage dynamique du typage statique.

Le typage consiste à attribuer un type (booléen, entier, chaîne, réel, ...) à une variable afin de savoir comment traiter la variable.

1 + 2 => 3
"bonjour " + "Jean-Michel" => "bonjour Jean-Michel" (concaténation)
1 + "bonjour" => ?
"bonjour" + 1 =?> "bonjour1"
"bonjour" + str(1) => "bonjour1"
  • Le typage statique attribue un seul type à une variable pour la durée de son existence.
  • Le typage dynamique consiste à modifier le type d'une variable lorsqu'on lui affecte une valeur.
x = 1 (entier)
y = 3.14 (réel)
s = "bonjour" (chaine)

Notons que le typage dynamique est une notion qui est associée aux langages interprétés.

Par exemple en Python :

>>> x = 10
>>> type(x)
<class 'int'>
>>> x = 3.14
>>> type(x)
<class 'float'>
>>> x = "coucou"
>>> type(x)
<class 'str'>

1.2. Python : bon ou mauvais langage

Python est un bon langage dans le sens ou il permet rapidement de mettre au point des programmes complexes même si on est pas un informaticien chevronné grâce à ses nombreuses bibliothèques.

Cependant c'est un mauvais langage en raison de certaines subtilités : cf. programme

1.3. Logiciels

Je recommande l'utilisation d'Anaconda une distribution libre et open source de Python dont l'objectif est de simplifier la gestion des paquets et leur déploiement (cf installation).

En ce qui concerne les éditeurs :

1.4. Langage algorithmique

Pour en savoir plus sur le langage algorithmique que nous utiliserons, on consultera cette page.

1.5. Mise en pratique

Pour la mise en pratique, on consultera ces pages :

Vous pouvez utiliser la console python afin d'exécuter du code.

Biliothèques Python :

1.6. Sitographie et bibliographie

1.7. Contrôle Continu