Aller au contenu
2nde · Chapitre 11 · Algorithmique et programmation

Algorithmique et Python

30 exercices corrigés

1 Variables et affectation

Une variable est une « boîte » qui porte un nom et contient une valeur. L'instruction x = 5 affecte la valeur \(5\) à la variable x (elle remplace l'ancienne valeur).

x = 5          # x vaut 5
x = x + 2      # on calcule x + 2, puis on range le résultat dans x : x vaut 7
nom = "Alice"  # une chaîne de caractères
Type Description Exemple
int nombre entier 42
float nombre à virgule (flottant) 3.14
str chaîne de caractères "bonjour"
bool booléen True, False
Opérations

+, -, *, / ; a ** b pour \(a^b\) ; a // b pour le quotient et a % b pour le reste de la division euclidienne (\(17 = 5 \times 3 + 2\) : 17 // 5 vaut \(3\) et 17 % 5 vaut \(2\)).

2 Les fonctions

Une fonction reçoit des arguments et renvoie un résultat avec return.

def f(x):
    return x**2 - 3*x + 1

print(f(4))    # affiche 5
Fonction Python et fonction mathématique

f(4) calcule l'image de \(4\) par \(f\). Une fonction Python peut aussi avoir plusieurs arguments, ou renvoyer un booléen.

3 Instruction conditionnelle

def tarif(age):
    if age < 12:
        return 5
    elif age < 18:
        return 7
    else:
        return 10
Comparaisons

== (égal), != (différent), <, <=, >, >=. Opérateurs logiques : and, or, not.

Attention

= sert à affecter, == sert à tester une égalité. Et l'indentation (le décalage de 4 espaces) indique ce qui fait partie du if, de la boucle ou de la fonction.

4 Boucle bornée for

On l'utilise quand on connaît le nombre de répétitions. range(n) donne \(0, 1, \ldots, n - 1\) ; range(a, b) donne les entiers de \(a\) à \(b - 1\).

s = 0
for k in range(1, 101):   # k prend les valeurs 1, 2, ..., 100
    s = s + k
print(s)                  # 5050

5 Boucle non bornée while

On l'utilise quand on répète tant qu'une condition est vraie, sans savoir à l'avance combien de fois. C'est le cas des algorithmes de seuil.

capital = 1000
annees = 0
while capital <= 2000:        # tant que le capital n'a pas doublé
    capital = capital * 1.05  # +5 % par an
    annees = annees + 1
print(annees)                 # 15
Méthode — faire tourner un programme à la main

On fait un tableau avec une colonne par variable, et une ligne par tour de boucle.

6 Simuler le hasard

Le module random fournit des nombres aléatoires : random.randint(1, 6) donne un entier au hasard entre \(1\) et \(6\) (comme un dé), random.random() un nombre au hasard dans \([0 ; 1[\).

import random
compteur = 0
for i in range(1000):
    if random.randint(1, 6) == 6:
        compteur = compteur + 1
print(compteur / 1000)    # fréquence des 6, proche de 1/6
Pour aller plus loin

Contenu facultatif, non exigible.

En 1re, tu utiliseras les listes Python pour stocker plusieurs valeurs (par exemple les termes d'une suite).


Tu as lu le cours ?Voir la fiche mémo →