Séquences d'instructions et variables
Introduction
Un programme informatique, c'est avant tout une liste d'instructions que la machine exécute les unes après les autres, dans l'ordre où vous les avez écrites. Cette idée semble simple, mais elle est fondatrice : tout ce que vous programmerez par la suite repose dessus.
Pour faire des choses utiles, le programme doit pouvoir retenir des valeurs au fil de son exécution — un prénom, un âge, un total de points. C'est le rôle des variables. Dans cette première séance, vous allez écrire vos premières lignes de Python et comprendre comment la machine y donne suite.
Une séquence d'instructions
Considérez ces trois lignes de Python :
print("Bonjour")
print("Nous sommes en cours de SNT")
print("Et nous écrivons notre premier programme")
Quand Python exécute ce programme, il lit la première ligne, l'exécute, puis la deuxième, puis la troisième. Cet enchaînement s'appelle le flot d'exécution. À l'écran, vous verrez apparaître :
Bonjour
Nous sommes en cours de SNT
Et nous écrivons notre premier programme
L'ordre compte. Si vous inversez les lignes, le résultat affiché change. Une séquence d'instructions est précisément cela : une succession d'actions exécutées dans un ordre déterminé.
Qu'affiche ce programme : print('A') puis print('B') puis print('A') ?
La variable, une boîte qui retient une valeur
Une variable est un nom auquel on associe une valeur. On la crée par une
affectation avec le signe = :
prenom = "Léa"
age = 15
Après ces deux lignes :
- la variable
prenomcontient la chaîne de caractères"Léa"; - la variable
agecontient le nombre entier15.
Le signe = n'a pas la signification du « égale » des mathématiques. En
Python, = signifie « range la valeur de droite dans la boîte nommée à
gauche ». On parle d'affectation.
prenom = "Léa" se lit « on affecte la valeur "Léa" à la
variable prenom ». La flèche mentale va de droite à gauche.Une fois affectée, la variable se réutilise comme si elle valait sa valeur :
prenom = "Léa"
age = 15
print("Bonjour", prenom)
print("Vous avez", age, "ans")
Affichage attendu :
Bonjour Léa
Vous avez 15 ans
Une variable change de valeur
Le mot « variable » porte bien son nom : sa valeur peut changer au cours du programme. Chaque nouvelle affectation remplace l'ancienne valeur :
Regardez bien la troisième affectation : score = score + 5. Python évalue
d'abord la partie droite (score + 5, qui vaut 10 + 5 = 15), puis
range le résultat dans score. La valeur précédente de score est définitivement
perdue.
score = score + 5 ne ressemble à aucune équation mathématique sensée. C'est
une instruction, pas une égalité. Lue dans le bon sens, elle dit :
« calcule score + 5, puis stocke ce nombre dans score ».Après x = 3 puis x = x + 1 puis x = x * 2, que vaut x ?*
L'expression à droite du =
À droite du signe =, on peut mettre n'importe quelle expression : une
valeur écrite directement, un calcul, ou une combinaison qui mélange des
variables et des opérations.
| Affectation | Ce qui est calculé à droite | Valeur stockée à gauche |
|---|---|---|
a = 5 | 5 | 5 |
b = a + 2 | 5 + 2 = 7 | 7 |
c = a * b | 5 × 7 = 35 | 35 |
nom = "Léa" | la chaîne "Léa" | "Léa" |
salut = "Bonjour " + nom | concaténation | "Bonjour Léa" |
Le programme s'exécute toujours de haut en bas, ligne par ligne : à chaque affectation, Python utilise la valeur que les variables ont à ce moment-là.
Nommer correctement ses variables
Quelques règles à respecter pour les noms de variables en Python :
- Que des lettres, chiffres et soulignés (
_). Pas d'espace, pas d'accent, pas de tiret. - Le nom ne commence pas par un chiffre.
score1est valable,1scorene l'est pas. - Choisir un nom parlant :
ageplutôt quea,nombre_elevesplutôt quen. Votre code se relit beaucoup plus facilement.
# Recommandé
nombre_eleves = 28
prenom_prof = "M. Dupont"
# À éviter (même si Python l'accepte)
x = 28
truc = "M. Dupont"
note_finale, pas noteFinale
ni NoteFinale).Pièges courants
=n'est pas==. Le simple=affecte une valeur. Le double==(que vous verrez bientôt) sert à comparer. Ne pas confondre.- Une variable doit être affectée avant d'être utilisée. Écrire
print(age)sans avoir d'abord faitage = 15quelque part au-dessus provoque une erreur (NameError). - Les guillemets distinguent texte et nombre.
age = 15met le nombre 15.age = "15"met la chaîne de caractères composée des deux symboles1et5. On ne peut pas faire les mêmes opérations sur les deux.
Vérification finale
Que vaut total à la fin : total = 0 ; total = total + 3 ; total = total + 4 ?