Chapitre 1 : Constructions élémentaires⚓︎
Activité 1-01 : Prise en main de Jupyter
Objectifs :
- Exécuter des cellules de carnet Jupyter et découvrir les boutons les plus utiles.
- Faire la différence entre une expression et une instruction.
- Installer un certain nombre de modules complémentaires qui seront utilisés dans la suite du cours de NSI.
Carnet Jupyter à télécharger ici
Carnet Jupyter accessible sur CAPYTALE
Corrigé disponible ici
Partie A - Variables, affectations et séquences d'instructions⚓︎
Variables⚓︎
Une variable est une référence à une zone de la mémoire de l'ordinateur dans laquelle est stockée une valeur.
Pour attribuer une valeur à une variable ou pour modifier sa valeur, on réalise une affectation.
1 |
|
Une variable appelée x
a été définie, et la valeur 0
a été stockée dans la variable grâce à une affectation, notée =
en Python.
Pour afficher à l'écran la valeur de la variable x
, on utilise la fonction print
.
1 |
|
Attention aux noms de variables choisis
Le nom d'une variable doit être choisi de sorte que l'on comprenne rapidement le rôle de cette variable.
Le nom peut contenir des lettres, des chiffres et certains caractères spéciaux. Il doit commencer par une lettre minuscule.
De plus, certains mots-clés du langage Python ne peuvent pas être utilisés comme nom de variable.
Séquences d'instructions⚓︎
Le langage de programmation Python est un langage de programmation impérative. Cela signifie que les instructions sont exécutées les unes après les autres, dans l'ordre.
Considérons par exemple la séquence d'instructions suivante :
1 2 3 4 5 6 7 8 |
|
-
Ligne
1
: On définit une variabletotal
en lui affectant la valeur0
. Cette étape s'appelle l'initialisation de la variable. -
Ligne
2
: On initialise une variablenote
en lui affectant la valeur13
. -
Ligne
3
: On calcule d'abord la somme de la valeur detotal
(0
) et de la valeur denote
(13
). On affecte ensuite le résultat (13
) à la variabletotal
. L'ancienne valeur detotal
(0
) est écrasée par sa nouvelle valeur (13
). -
Ligne
4
: Une nouvelle valeur est affectée à la variablenote
. L'ancienne valeur denote
(13
) est écrasée par sa nouvelle valeur (15
). -
Etc.
Suivi de l'évolution de la valeur de variables
On peut représenter par un tableau les valeurs successives des variables au fur et à mesure de l'exécution des lignes de code.
Par exemple, pour le programme ci-dessus, voici le tableau obtenu :
Ligne | total |
note |
moyenne |
Remarque |
---|---|---|---|---|
1 | 0 |
La variable total est initialisée. |
||
2 | 0 |
13 |
La variable `note est initialisée. |
|
3 | 13 |
13 |
La valeur de total est écrasée et remplacée par une nouvelle valeur. |
|
4 | 13 |
15 |
La valeur de note est écrasée et remplacée par une nouvelle valeur. |
|
5 | 28 |
15 |
La valeur de total est écrasée et remplacée par une nouvelle valeur. |
|
6 | 28 |
8 |
La valeur de note est écrasée et remplacée par une nouvelle valeur. |
|
7 | 36 |
8 |
La valeur de total est écrasée et remplacée par une nouvelle valeur. |
|
8 | 36 |
8 |
12.0 |
La variable moyenne est initialisée. |
Exercice 1-02 : Suivi de l'évolution de la valeur de variables
Objectif : À l'aide d'un tableau de valeurs, suivre l'évolution de la valeur de plusieurs variables au cours de l'exécution d'une séquence d'affectations.
Énoncé
1. Représenter sous forme de tableau les valeurs successives des variables lors de l'exécution de la séquence d'instructions suivante :
1 2 3 4 5 |
|
2. Quel effet est produit par l'exécution des lignes 3
à 5
?
Corrigé
1.
Ligne de code | a |
b |
---|---|---|
a = 3 |
3 | |
b = 7 |
3 | 7 |
a = a + b |
10 | 7 |
b = a - b |
10 | 3 |
a = a - b |
7 | 3 |
2. L'exécution des lignes 3
à 5
entraîne un échange des valeurs des variables a
et b
.
Tutor Magic⚓︎
Tutor Magic est un outil qui permet, dans un carnet Jupyter, de suivre pas à pas la valeur des variables pendant l'exécution d'une séquence d'instructions.
Il faut commencer par charger Tutor Magic en exécutant la commande suivante dans une cellule du carnet :
1 |
|
Il suffit ensuite d'ajouter la ligne suivante au dessus de la séquence d'instructions à étudier :
1 |
|
Voici le résultat obtenu :
Activité 1-03 : Utilisation de Tutor Magic
Objectif : Utiliser l'outil Tutor Magic.
Carnet Jupyter à télécharger ici
Corrigé disponible ici
Partie B - Conditions et boucles⚓︎
Comme tous les langages de programmation impératifs, Python dispose d'un ensemble de structures qui permettent d'exécuter des instructions de manière répétée ou lorsqu'un certain test est réussi.
Instructions conditionnelles⚓︎
On utilise une condition, ou instruction conditionnelle, lorsque les instructions à exécuter dépendent du résultat (Vrai
ou Faux
) d'un certain test.
Par exemple, si la valeur de la variable moyenne
est strictement inférieure à 10
, on souhaite afficher à l'écran le message "Échec"
.
1 2 3 |
|
La condition est introduite par le mot-clé if
, qui est directement suivi par le test à effectuer. La ligne se termine par :
.
Le test consiste à vérifier si oui ou non la valeur de la variable moyenne
est strictement inférieure à 10
.
-
Dans le cas où c'est vrai (
True
en Python), on exécute l'instructionprint("Échec")
, qui provoque l'affichage demandé à l'écran. -
Dans le cas où c'est faux (
False
en Python), l'instructionprint("Échec")
n'est pas exécutée, et rien ne s'affiche à l'écran.
Attention à la virgule mathématique en Python
La virgule mathématique est notée par un .
en Python. C'est la notation anglo-saxonne.
On souhaite désormais que, dans le cas où la valeur de moyenne
est strictement inférieure à 10
, le message "Échec" s'affiche à l'écran mais que, dans le cas contraire, le message "Succès" s'affiche.
1 2 3 4 5 |
|
Le mot-clé else
, suivi de :
, permet d'indiquer quelles sont les instructions à exécuter dans le cas où le test est faux.
On peut remarquer que, dans les exemples précédents, les instructions print("Échec")
et print("Succès")
sont décalées horizontalement de quatre espaces vers la droite. On parle d'indentation. C'est un concept fondamental du langage Python, qu'on ne retrouve pas dans la grande majorité des autres langages de programmation.
L'indentation est utilisée pour signaler précisement le début et la fin des séquences d'instructions qui doivent être exécutées.
Opérateurs de comparaison
Pour l'écriture des tests, on aura régulièrement recours aux opérateurs mathématiques de comparaison :
==
est égal à,!=
n'est pas égal à,<
est strictement inférieur à,>
est strictement supérieur à,<=
est inférieur ou égal à,>=
est supérieur ou égal à.
Exercice 1-04 : Instructions conditionnelles
Objectif : Écrire des instructions conditionnelles.
Carnet Jupyter à télécharger ici
Carnet Jupyter accessible sur CAPYTALE
Corrigé disponible ici
Boucle bornée (boucle pour)⚓︎
Lorsque l'on souhaite exécuter plusieurs fois de suite une même séquence d'instructions, et que l'on connait a priori le nombre de répétitions souhaitées, on utilise une boucle bornée.
Par exemple, si on exécute la séquence d'instructions suivantes :
1 2 3 4 5 |
|
alors l'affichage obtenu est :
1 2 3 4 5 6 7 8 9 10 11 |
|
La boucle pour est introduite par le mot-clé for
et la première ligne se termine par :
.
Sur les lignes 2
à 4
est écrite la séquence d'instructions à exécuter plusieurs fois. Elle est indentée.
La ligne 5
, qui n'est pas indentée, ne fait pas partie de la séquence d'instructions à répéter. Elle n'est donc exécutée qu'une seule fois, après la fin de la boucle pour.
Visualisation à l'aide de Tutor Magic
À propos de l'expression range(10)
L'expression range(10)
permet de préciser qu'on souhaite dix répétitions, pour tous les entiers nombre
allant de 0
à 9
.
Lorsque la séquence d'instructions est exécutée pour la première fois, la variable nombre
a pour valeur 0
.
Ensuite, la même séquence d'instructions est exécutée à nouveau, mais cette fois la variable nombre
a pour valeur 1
.
La séquence est ensuite exécutée alors que la variable nombre
a pour valeur 2
, puis 3
, puis 4
, etc. jusqu'à 9
.
Exercice 1-05 : Différentes utilisations de range
Objectif : Comprendre comment s'utilise range
dans l'écriture d'une boucle pour.
Carnet Jupyter à télécharger ici
Carnet Jupyter accessible sur CAPYTALE
Corrigé disponible ici
Exercice 1-06 : Boucles bornées
Objectif : Écrire des boucles bornées.
Carnet Jupyter à télécharger ici
Carnet Jupyter accessible sur CAPYTALE
Corrigé disponible ici
Boucle non bornée (boucle tant que)⚓︎
Lorsque l'on souhaite exécuter plusieurs fois de suite une même séquence d'instructions, et que l'on ne connait pas a priori le nombre de répétitions souhaitées, on utilise une boucle non bornée.
Par exemple, si on exécute la séquence d'instructions suivantes :
1 2 3 4 5 |
|
alors l'affichage obtenu est :
1 2 3 4 5 6 7 |
|
La boucle tant que est introduite par le mot-clé while
, suivi d'une condition qui doit être vraie pour que la séquence d'instructions s'exécute. La première ligne se termine par :
.
Sur les lignes 2
et 3
est écrite la séquence d'instructions à exécuter plusieurs fois, et elle est indentée.
La ligne 4
, qui n'est pas indentée, ne fait pas partie de la séquence d'instructions à répéter. Elle n'est donc exécutée qu'une seule fois, après la fin de la boucle tant que.
Visualisation à l'aide de Tutor Magic
Attention aux boucles infinies
Il faut s'assurer que la condition qui définit la boucle tant que devient fausse à un moment donné. Dans le cas contraire, on parle de boucle infinie, et le programme ne fonctionne pas car on ne sort jamais de la boucle.
1 2 3 4 |
|
La variable nombre
est initialisée à 1
et elle augmente ensuite d'une unité lors de chaque passage dans la boucle. Elle ne sera donc jamais égale à 0
et la boucle ne s'arrêtera donc jamais.
Exercice 1-07 : Boucles non bornées
Objectif : Écrire des boucles non bornées.
Carnet Jupyter à télécharger ici
Carnet Jupyter accessible sur CAPYTALE
Corrigé disponible ici
Partie C - Exercices et activités⚓︎
Exercices 1-08 à 1-13
Activités 1-14 à 1-16
Objectifs :
- Utiliser des instructions conditionnelles et des boucles.
- Découvrir la fonction permettant de tirer aléatoirement un nombre entier.
- Découvrir la fonction permettant de demander à l'utilisateur de faire une saisie au clavier.
Carnet Jupyter à télécharger ici
Carnet Jupyter accessible sur CAPYTALE
Corrigé disponible ici
Ce qu'il faut savoir et savoir faire⚓︎
- Modifier et exécuter des cellules dans un carnet Jupyter.
- Écrire une instruction conditionnelle.
- Écrire une boucle bornée de la forme
for variable in range(nb_repetitions):
. - Écrire une boucle non bornée...
- ... mais pas une boucle infinie.
- Utiliser correctement l'indentation pour définir les séquences d'instructions.
- Être capable de suivre la valeur d'une variable au cours de l'exécution d'une séquence d'instructions, à la main ou à l'aide de Tutor Magic.
- Faire un affichage à l'écran avec la fonction
print
. - Tirer un nombre entier au hasard avec la fonction
randint
. - Demander à l'utilisateur de saisir un entier au clavier avec la commande
int(input())
. - Connaître la différence entre les expressions
range(a)
,range(a, b)
etrange(a, b, c)
.