Exo Python

Identification

Infoforall

7 - Exercices Python


A rendre en version papier.

Ce travail permettra à tout le monde de se retrouver à peu près au même niveau sur les connaissances détaillées ici, que vous les ayez vu en seconde, ou pas. Des activités de cours bien plus détaillées nous permettront d'aller plus loin. Il ne s'agit ici que de découvrir ou de réactiver les connaissances.

1 - Variables

Une variable est constituée d'un nom et d'un contenu.

On peut stocker une valeur en lui donnant un nom.

Cette valeur pourra bien entendu varier si on la modifie.

Affectation

Pour affecter un contenu à un nom de variable, on réalise ce qu'on nomme une affectation.

1
a = 10

Ceci permet de créer une variable nommée a et y stockée la valeur 10.

Notez bien que c'est 10 qu'on associe à a : on va de la droite vers la gauche. C'est pour cela qu'on écrit souvent ceci dans les algorithmes : a10.

Incrémentation

Incrémenter veut dire augmenter la valeur.

Incrémenter de 1 veut dire qu'on augmente la valeur de 1 : 45 passe à 46, 12 passe à 13...

Incrémenter de 2 veut dire qu'on augmente la valeur de 2 : 45 passe à 47, 12 passe à 14...

Si on ne précise pas la valeur, c'est qu'il s'agit d'une augmentation de 1.

Pour incrémenter a de 1, il faut donc

  1. a = a + 1 : évaluer la valeur actuelle de a,
  2. a = a + 1 : évaluer (calculer) ce que donne cette valeur + 1 et
  3. a = a + 1 : affecter le résultat de cette évaluation à a.
1 2
a = 10 a = a + 1

En ligne 1, on associe 10 à a.

En ligne 2, on évalue a + 1, ce qui donne 11. On place ENSUITE ce résultat de 11 dans a : au final, a contient donc 11.

✎ 01° Expliquer ce que va contenir la variable a en fin de programme.

1 2
a = 10 a = a + 5

✎ 02° Expliquer ce que va contenir la variable paquets_de_chips en fin de programme.

1 2
paquets_de_chips = 4 paquets_de_chips = paquets_de_chips - 1

✎ 03° Expliquer ce que va contenir la variable b en fin de programme.

1 2
b = 10 b = b + b

✎ 04° Expliquer ce que va contenir la variable c en fin de programme.

1 2 3
a = 10 b = 50 c = b - a

2 - Instructions conditionnelles

Instruction conditionnelle

Une instruction conditionnelle est une instruction qui permet d'exécuter un bloc d'instructions uniquement si la condition évaluée donne "vraie" (True en Python).

Ci-dessous, un exemple où on change l'appréciation si la note est bonne (if en anglais)

1 2 3 4 5 6
fatigue = "En forme !" appreciation = "Moyen" note = 20 if note > 15: appreciation = "Très bien" fatigue = "Grosse fatigue"

Notez que l'instruction (ou les instructions) à effecuter est décalée de 4 espaces (ligne 5) : c'est ce décalage qui permet à l'intepréteur Python de comprendre ce qui fait partie des instructions conditionnelles ou pas. La ligne 6 ne dépend absolument pas de la condition.

Puisque note vaut 20 dès la ligne 3, l'expression booléenne note > 15 est évaluée à True.
La variable appreciation passe donc à "Très bien" uniquement si la note fournie est strictiement supérieure à 15.

Sur la ligne 6, la variable fatiguen passe donc à "Grosse fatigue" sans condition car la ligne n'est pas décalée de 4 espaces.

✎ 05° Justifier le contenu des variables appreciation et fatigue à la fin de l'exécution du programme.

1 2 3 4 5 6
fatigue = "En forme !" appreciation = "Moyen" note = 12 if note > 15: appreciation = "Très bien" fatigue = "Grosse fatigue"

✎ 06° Justifier le contenu des variables appreciation et fatigue à la fin de l'exécution du programme.

1 2 3 4 5 6
fatigue = "En forme !" appreciation = "Moyen" note = 17 if note > 15: appreciation = "Très bien" fatigue = "Grosse fatigue"

✎ 07° Justifier le contenu des variables appreciation et fatigue à la fin de l'exécution du programme. Attention au décalage de la ligne finale.

1 2 3 4 5 6
fatigue = "En forme !" appreciation = "Moyen" note = 5 if note > 15: appreciation = "Très bien" fatigue = "Grosse fatigue"

3 - Fonction

Fonction basique

Une fonction permet de créer un code qu'on pourra utiliser plusieurs fois ensuite.

Pour cela, on doit d'abord déclarer la fonction avec le mot-clé def en Python. On lui donne un nom et on fournit entre parenthèses le nom des variables qui serviront à recueillir les informations sur lequelles on demande à la fonction de travailler.

Les instructions à effectuer par la fonction seront à décaler de 4 espaces par rapport à la ligne de déclaration.

A titre d'exemple, voici une fonction qui renvoie le double de ce qu'on lui envoie.

1 2 3 4
def double(x): return 2 * x n = double(12)

Explications

  • Ligne 1 : on déclare une fonction nommée double qui peut recevoir un contenu qu'on placera dans une variable nommée note.
  • Ligne 2 : on lui demande de répondre en renvoyant le double de ce qu'elle a reçu dans la variable x.
  • Ligne 4 puis ligne 1 : on lance un appel à la fonction double en lui envoyant une valeur 12 qu'on placera dans une variable nommée x.
  • Ligne 2 : la fonction répond 24
  • On revient donc en ligne 4 et on stocke la réponse 24 de la fonction dans la variable n.

✎ 08° Justifier le contenu de la variable n à la fin de l'exécution du programme.

1 2 3 4
def double(x): return 2 * x n = double(100)

✎ 09° Justifier le contenu de la variable n à la fin de l'exécution du programme.

1 2 3 4
def mystere(x): return x + 10 n = mystere(100)
Fonction plus complexe

Voici une fonction qui récupère la valeur d'une note, rajoute 5, bloque la note à 20 si elle dépassait 20 et renvoie le résultat final.

1 2 3 4 5 6 7
def nouvelle_note(note): note = note + 5 if note > 20: note = 20 return note n = nouvelle_note(12)

Explications

  • Ligne 1 : on déclare une fonction nommée nouvelle_note qui peut recevoir un contenu qu'on placera dans une variable nommée note.
  • Ligne 2 à 5 : on explique ce qu'il faut faire lorsqu'on lancera l'appel à cette fonction, mais sans l'exécuter pour le moment. On notera qu'en ligne 5, on lui demande de répondre en renvoyant la nouvelle version de note.
  • Ligne 7 puis 1 : on lance un appel à la fonction nouvelle_note en lui envoyant une valeur 12 qu'on placera dans une variable nommée note.
  • Ligne 2 à 5 : on exécute ces quelques lignes de code en considérant que note contient 12. Après être passé par la ligne 2, note contiendra donc 17. Le test de la condition est faux (17 n'est pas supérieur à 20), on passe donc directement en ligne 5 : la fonction répond 17
  • On revient donc en ligne 7 et on stocke la réponse 17 de la fonction dans la variable n.

✎ 10° Justifier le contenu de la variable n à la fin de l'exécution du programme.

1 2 3 4 5 6 7
def nouvelle_note(note): note = note + 5 if note > 20: note = 20 return note n = nouvelle_note(18)

Activité publiée le 12 06 2021
Dernière modification : 12 06 2021
Auteur : ows. h.