Algorithmique en Python

1. Variables, affectations, entrées, sorties et calculs

En Python, le nom d'une variable doit commencer par une lettre, de préférence minuscule, et peut comporter des chiffres. IL est recommandé de choisir des noms de variables qui sont en rapport avec le rôle de cette variable dans l'algorithme. Par exemple, une variable utilisée pour stocker la valeur d'un prix sera nommé prix plutôt que x. Le programme sera ainsi plus facilement compréhensible. On évitera l'utilisation d'accents et de caractères spéciaux dans le nom des variables.

Instruction Pseudo-code Python Scratch TI
Affectation \(prix \longleftarrow 25\) prix = 25 imagetab \(25\rightarrow X\)
Entrée Saisir \(x\) x = eval(input("x ? ")) imagetab Prompt X
Sortie Afficher \(x\) print(x) imagetab Disp X

Pour faire des calculs, on utilise simplement les quatre opérations +, -, * et /.

  • Une puissance se calcule avec ** : par exemple 2**3 donne 8.
  • Pour accéder aux fonctions mathématiques plus spécifiques (comme la racine carrée), il faut importer en début de programme, la bibliothèque math en entrant la ligne : from math import *. La racine carrée se calcule avec sqrt() : par exemple sqrt(4) donne 2. Les fonctions cos, sin et tan sont aussi disponibles.

Exercice 1

  1. Que fait l'algorithme ci-dessous, écrit en Python ?
    1
    2
    3
    4
    5
    from math import *
    
    rayon = eval(input("Entrer le rayon : "))
    perimetre = 2*pi*rayon
    print("Le périmètre est environ égal à", perimetre)
    
  2. Écrire et tester un programme en Python qui calcule l'aire d'un disque de rayon donné.
  3. Écrire un programme en Python qui calcule la distance \(AB\) en fonction des coordonnées des points \(A\) et \(B\) dans un repère orthonormal.

2. Structures conditionnelles : if ...else ...

Une structure conditionnelle permet de réaliser un test, puis d'exécuter des instructions différentes si le résultat du test est vrai ou s'il est faux.

Attention

En Python, le symbole = est réservé à l'affectation (mettre une valeur dans une variable). Pour tester une égalité, on utilisera ==.

Pour tester une différence, on utilise !=.

Pour les inégalités : <, >, <=, >=.

Instruction Pseudo-code Python Scratch TI
Si ... Alors ... Sinon image image image image

Exercice 2

  1. Un jeu consiste à faire deviner un nombre mystère. D'après l'algorithme ci-dessous, quel est le nombre mystère ?
    1
    2
    3
    4
    5
    n = eval(input("Entrer un nombre : "))
    if n==25:
        print("Gagné !")
    else:
        print("Perdu !")
    
  2. Dans un centre de reprographie, le prix de la photocopie est de 5 centimes si on en fait jusqu'à 20. Si on en fait plus de 20, les 20 premières coûtent 5 centimes et les suivantes coûtent 4 centimes. Écrire un programme qui affiche le prix total en fonction du nombre de photocopies.

3. Structures itératives (répétitions) : for et while

Quand on connaît le nombre de répétitions

Dans ce cas, on utilise une boucle "Pour" (for).

Par exemple, le code suivant ajoute dix fois 0,8 à la variable \(x\).

Instruction Pseudo-code Python Scratch TI
Boucle Pour image image image image

Attention

En Python, l'instruction for n in range(10): crée une variable n dont les valeurs vont varier de 0 à 9 : soit dix valeurs différentes en comptant le zéro. Si l'on veut que n varie de 1 à 10, on utilisera : for n in range(1, 11):.

Exercice 3

  1. Que fait cet algorithme ?
    1
    2
    for x in range(5):
        print("f(x)=", x**2+3*x-5)
    
  2. Modifier l'algorithme précédent pour qu'il affiche les valeurs de la fonction \(f\) définie par \(f(x)=\sqrt{x^2+1}\) pour les valeurs entières de \(x\) variant de 1 à 15.

Quand on connaît une condition d'arrêt, mais pas le nombre de répétitions

On utilise alors une boucle "Tant que" (while).

Par exemple, le code suivant ajoute 10 à la variable \(x\) jusqu'à ce qu'elle devienne supérieure ou égale à 500.

Instruction Pseudo-code Python Scratch TI
Boucle Tant que image image image image

Exercice 4

  1. Dans un jeu de dé, il faut faire un six pour pouvoir commencer à jouer. En Python, on peut simuler le lancer d'un dé par l'instruction randint(1,6), en prenant soin d'importer la bibliothèque random en début de programme. Expliquer ce que fait cet algorithme et notamment le rôle de la variable k.
    1
    2
    3
    4
    5
    6
    7
    8
    from random import *
    
    k = 1
    de = randint(1,6)
    while de != 6:
        de = randint(1,6)
        k = k + 1
    print(k)
    
  2. On place une somme de 1 000 € sur un livret d'épargne rémunéré au taux annuel de 3,5 %. Chaque année, la somme disponible est donc multipliée par 1,035 et rapportera à son tour des intérêts l'année suivante. Écrire un algorithme en Python permettant de déterminer au bout de combien d'année la somme disponible dépassera 5 000 €. On pourra recopier et compléter le programme suivant, où \(n\) représente le nombre d'années écoulées.
    1
    2
    3
    4
    5
    6
    n = 0
    somme = 1000
    while ... :
        ...
        ...
    print(n)