Algorithmique et Python

Passer d’une idée à un algorithme clair avec variables, conditions, boucles et fonctions.

Télécharger le PDF

Pourquoi étudier l'algorithmique ?

Un ordinateur calcule très vite, mais il ne devine rien. Pour lui faire résoudre un problème, il faut décrire une suite d'instructions sans ambiguïté. Cette description s'appelle un algorithme. Python est un langage qui permet de la rendre exécutable.

Schéma : Pourquoi étudier l'algorithmique ?

Du langage naturel à Python

Lire un programme de haut en bas

Sauf instruction particulière, Python exécute les lignes dans l'ordre. Les espaces au début d'une ligne, appelés indentation, indiquent les blocs appartenant à une condition, une boucle ou une fonction.

Afficher n'est pas renvoyer

Variables, types et affectations

Une variable informatique est une boite nommée

Les quatre types essentiels

Type PythonNomExempleValeur
intentier\(\texttt{n = 12}\)\(12\)
floatflottant\(\texttt{x = 2.5}\)approximation décimale
strchaine de caractères\(\texttt{mot = "lycee"}\)texte
boolbooléen\(\texttt{ok = x > 0}\)True ou False

Calculs, comparaisons et booléens

Opérateurs numériques

PythonMathématiquesExemple
+, -, *, /\(+,-,\times,\div\)7 / 2 donne 3.5
**puissance3 ** 2 donne 9
//quotient entier17 // 5 donne 3
%reste17 % 5 donne 2

Comparaisons et connecteurs logiques

PythonSensPythonSens
\(\texttt{==}\)est égal à\(\texttt{!=}\)est différent de
\(\texttt{<}, \texttt{<=}\)inférieur, inférieur ou égal\(\texttt{>}, \texttt{>=}\)supérieur, supérieur ou égal
andet : deux conditions vraiesorou : au moins une vraie
notnégation

Choisir avec if, elif, else

Répéter un nombre connu de fois : la boucle for

Comprendre range

InstructionValeurs prises par iNombre de tours
range(5)\(0,1,2,3,4\)5
range(2, 6)\(2,3,4,5\)4
range(1, 10, 2)\(1,3,5,7,9\)5
range(6, 1, -1)\(6,5,4,3,2\)5

Accumuler une somme

Compter des valeurs qui vérifient une condition

Répéter jusqu'à un seuil : la boucle while

Construire des fonctions réutilisables

Simuler une expérience aléatoire

Une réalisation n'est pas une probabilité

Répéter pour obtenir une fréquence

Lire une fonction statistique

Le programme demande de savoir lire une fonction renvoyant une moyenne ou un écart type, sans exiger la connaissance des listes. Il faut donc comprendre le rôle des étapes, même si certaines écritures seront fournies.

Pour aller plus loin : raisonner sur les algorithmes

L'invariant : une preuve qui accompagne la boucle

La dichotomie : éliminer la moitié à chaque étape

On cherche une valeur approchée de \(\sqrt{2}\), donc un nombre \(x\) tel que \(x^2=2\). On sait que \(1^2<2<2^2\).

def racine2(epsilon):
    a = 1.0
    b = 2.0
    while b - a > epsilon:
        m = (a + b) / 2
        if m ** 2 < 2:
            a = m
        else:
            b = m
    return (a + b) / 2

Euclide : un algorithme vieux de plus de deux mille ans

def pgcd(a, b):
    while b != 0:
        a, b = b, a 
    return a

Boite à outils Python de Seconde

Fiche-mémoire

Schéma : Fiche-mémoire