Les variables
1. Qu'est-ce qu'une variable ?
En mathématiques, x est souvent une inconnue. En informatique, c'est différent. Une variable est une étiquette (un nom) collée sur une valeur stockée dans la mémoire de l'ordinateur.
On définit une variable par trois caractéristiques :
- Son nom (identificateur).
- Sa valeur (la donnée qu'elle contient).
- Son type (la nature de la donnée : nombre, texte, etc.).
Note : En Python, il est plus juste de dire qu'une variable est une référence. La variable ne "contient" pas la valeur, elle "pointe" vers l'endroit où la valeur est stockée en mémoire.
2. L'Affectation (ou Assignation)
L'opérateur pour créer une variable ou changer sa valeur est le signe égal =.
Attention : Ce n'est pas une égalité mathématique (comme dans 2x = 4). C'est un ordre donné à l'ordinateur.
Syntaxe :
nom_variable = valeur
Lecture : On lit cela "La variable nom_variable reçoit la valeur valeur".
L'ordre d'évaluation : L'ordinateur calcule d'abord ce qui est à droite du signe =, puis stocke le résultat dans la variable à gauche.
score = 0
score = score + 10
print(score)
3. Les Types de données fondamentaux
Python est un langage à typage dynamique. Vous n'avez pas besoin de dire "je veux créer un entier", Python le devine selon la valeur que vous donnez.
Voici les 4 types primitifs à connaître par cœur :
| Type Python | Nom complet | Description | Exemples |
|---|---|---|---|
| int | Integer (Entier) | Nombres entiers (positifs ou négatifs) | 42,-5,0 |
| float | Floating point (Flottant) | Nombres à virgule (attention, point en Python) | 3.14,-0.01,2.0 |
| str | String (Chaîne) | Suite de caractères (texte) | "Bonjour, ça va ?","NSI","123" |
| bool | Boolean (Booléen) | Valeur logique (Vrai ou Faux) | True,False |
Astuce : Pour connaître le type d'une variable, on utilise la fonction type().
x = 10
print(type(x))
y = 3.5
print(type(y))
4. Règles de nommage (Syntaxe)
Pour nommer une variable, il y a des règles strictes (sinon le programme plante) et des conventions (pour que le code soit propre).
Règles strictes (Syntaxe) :
- Peut contenir des lettres, des chiffres et l'underscore _.
- Ne doit jamais commencer par un chiffre (ex: 1variable est interdit).
- Pas d'espaces ni de caractères spéciaux (@, $, ?, accents déconseillés).
- Ne pas utiliser de mots réservés du langage (comme if, else, for, class, def).
- ✅ mon_score_actuel
- ❌ MonScoreActuel (réservé aux classes (notion de terminale))
- ❌ monScore (style camelCase, utilisé en Java/JS, mais évité en Python)
5. Opérations sur les variables
A. Opérations mathématiques (int et float)
Outre les classiques +, -, *, / (division classique qui donne un float), la NSI met l'accent sur deux opérateurs cruciaux pour l'arithmétique :
- Le quotient de la division euclidienne (//)
- Le reste de la division euclidienne ou Modulo (%)
a = 14
b = 4
print(a // b)
print(a % b)
print(a ** 2)
B. Opérations sur les chaînes (str)
On ne peut pas soustraire ou diviser des textes, mais on peut les additionner et les multiplier.
- Concaténation (+) : Coller deux chaînes.
- Répétition (*) : Répéter une chaîne.
message = "Bonjour " + "le monde"
echo = "Bla" * 3
print(message)
print(echo)
6. Conversion de types (Casting) et Entrées Utilisateur
C'est une source d'erreur fréquente chez les débutants. La fonction input() permet de demander une valeur à l'utilisateur, mais elle renvoie toujours une chaîne de caractères (str), même si l'utilisateur tape un chiffre.
Si vous voulez faire des maths avec une entrée utilisateur, vous devez convertir le type (Caster).
- int(v) : convertit v en entier.
- float(v) : convertit v en flottant.
- str(v) : convertit v en texte.
# Demander l'âge (input renvoie un str, par exemple "16")
age_texte = input("Quel est votre âge ? ")
# Conversion en entier pour le calcul
age_entier = int(age_texte)
# Calcul
age_futur = age_entier + 10
# Affichage (il faut remettre age_futur en str pour le concaténer, ou utiliser des virgules)
print("Dans 10 ans, vous aurez " + str(age_futur) + " ans.")