Menu
Coddy logo textTech

Qu'est-ce qu'une variable ?

En programmation, une variable est un emplacement nommé en mémoire qui stocke une valeur que ton programme peut lire et modifier pendant son exécution. Le nom, comme score ou user_name, permet au code de désigner la valeur sans savoir où elle est stockée.

Par Kevin Spektor, Cofondateur et CTO

Mis à jour le 24 septembre 2026

Un jeu qui compte les points doit retenir un nombre, l'augmenter et l'afficher à la fin. Ce nombre ne peut pas être écrit dans le code, parce qu'il change à chaque partie. Le programme réserve donc un emplacement en mémoire, lui donne un nom comme score et utilise ce nom chaque fois qu'il a besoin de la valeur actuelle.

Comment fonctionne une variable

Trois choses arrivent à une variable au cours d'un programme :

  1. La création. Le programme réserve de la mémoire pour une valeur et y attache un nom. En Python, cela se produit la première fois que tu affectes une valeur au nom. En Java et en C, tu déclares d'abord la variable, avec un type, comme dans int score;.
  2. L'affectation. Une valeur est rangée sous le nom avec =. Une nouvelle affectation remplace l'ancienne valeur.
  3. L'utilisation. Partout où le nom apparaît dans une expression, le programme lit la valeur qu'il contient à ce moment-là.
Start: 0
After one point: 10
Doubled: 20

Sur chaque ligne d'affectation, le côté droit est calculé en premier, avec la valeur que score a à ce moment-là. Le résultat est ensuite rangé sous le même nom. Le nom reste le même tandis que la valeur qu'il contient varie.

Le signe égal veut dire « range »

En maths, x = x + 1 n'a pas de solution. Dans un programme, c'est une instruction ordinaire : prendre la valeur actuelle de x, ajouter 1, et ranger le résultat dans x. Le signe = est l'opérateur d'affectation, et il déplace toujours une valeur du côté droit vers le nom à gauche.

Pour demander si deux valeurs sont égales, les langages de programmation utilisent un autre opérateur, ==. L'expression x == 5 ne modifie rien ; elle produit True ou False, un booléen.

Le sens mathématique est proche mais pas identique. En algèbre, le x de 2x + 3 = 7 représente un nombre inconnu que l'on cherche. Dans un programme, une variable contient une valeur connue qui peut changer au fil de l'exécution.

Variables et types de données

Chaque valeur a un type : un nombre entier, un nombre décimal, un morceau de texte, un booléen, une liste. Les langages diffèrent sur la question de savoir si la variable elle-même a un type.

En Python et en JavaScript, c'est la valeur qui porte le type, et une même variable peut contenir des valeurs de types différents au fil du temps. On parle de typage dynamique :

42 <class 'int'>
forty-two <class 'str'>

En Java, C et C++, la variable a un type fixe, choisi quand tu la déclares. C'est le typage statique : le compilateur rejette le code qui essaie de ranger du texte dans une variable int, avant même que le programme ne s'exécute.

int age = 30;          // Java: type, name, value
String name = "Rosa";
let age = 30;          // JavaScript: can be reassigned
const PI = 3.14159;    // cannot be reassigned

En C, le type décide aussi de la quantité de mémoire qu'occupe la variable. Un int fait 4 octets sur presque tous les systèmes actuels, un double en fait 8, et un char exactement 1. Pour garder de nombreuses valeurs sous un seul nom, comme tous les scores d'un jeu, tu utilises un tableau ou une liste et tu accèdes à chaque valeur par sa position, comme dans scores[0].

Des boîtes et des étiquettes

On représente souvent une variable comme une boîte qui contient une valeur. Cette image colle bien au C : int x; est réellement une zone de mémoire fixe, et y = x; copie la valeur dans une seconde zone.

Python fonctionne plutôt avec des étiquettes. Chaque valeur est un objet, et une variable est un nom attaché à l'un d'eux. La différence se voit quand deux noms désignent la même liste :

5 6
[1, 2, 3, 4]

Avec les nombres, y = y + 1 crée un nouveau nombre et déplace l'étiquette y dessus, donc x désigne toujours 5. Avec la liste, b = a ne copie rien : les deux noms désignent une seule liste, donc une modification faite via b se voit aussi via a. Écris b = a.copy() quand tu veux une liste séparée. Les objets et les tableaux en Java et en JavaScript se comportent de la même façon.

La portée : où une variable existe

Une variable n'est visible que dans une partie du programme, appelée sa portée. Une variable créée dans une fonction est locale : elle existe pendant l'exécution de la fonction et disparaît quand la fonction se termine. Une variable créée au niveau principal d'un fichier est globale et peut être lue partout dans ce fichier.

Les variables locales sont plus faciles à suivre, parce que toutes les lignes qui peuvent les modifier se trouvent dans une seule fonction. Les programmes qui reposent sur beaucoup de variables globales sont plus difficiles à déboguer, pour la raison inverse.

Nommer les variables

Un bon nom dit ce que signifie la valeur : total_price, is_logged_in, retries_left. La plupart des langages partagent les mêmes règles :

  • un nom se compose de lettres, de chiffres et de tirets bas, et ne peut pas commencer par un chiffre ;
  • un nom ne peut pas être un mot-clé du langage, comme if, for ou class ;
  • les noms sont sensibles à la casse, donc total et Total sont deux variables différentes.

Le style varie selon le langage. Python utilise le snake_case (user_name), tandis que Java et JavaScript utilisent le camelCase (userName). Les valeurs qui ne doivent jamais changer sont souvent nommées en majuscules, comme MAX_SIZE.

Erreurs courantes

Utiliser une variable avant qu'elle ait une valeur. Python s'arrête avec une NameError :

NameError: name 'total' is not defined

La même erreur apparaît quand un nom est mal orthographié, parce que totla et total sont deux noms différents pour l'ordinateur.

Écrire = quand tu veux dire ==. En Python, if x = 5: est une erreur de syntaxe, tu le découvres donc tout de suite. En C et en JavaScript, if (x = 5) est du code valide : il range 5 dans x, et la condition est toujours vraie. Le programme s'exécute et donne de mauvais résultats, une erreur de logique qui peut être longue à trouver.

Donner deux rôles à une seule variable. Une variable qui contient un prix en haut d'une fonction et un nombre d'articles en bas fonctionne toujours, mais chaque lecteur doit suivre quel sens est en cours. Donne à chaque sens son propre nom.

Pour aller plus loin

Les variables contiennent des valeurs, et l'étape suivante consiste à connaître les sortes de valeurs qui existent : lis ce qu'est un booléen pour vrai et faux, et ce qu'est un tableau pour plusieurs valeurs sous un seul nom. Le guide des variables Python détaille l'affectation, les règles de nommage et l'affectation multiple, et le cours Python te fait écrire et modifier des variables dès la première leçon.

Questions fréquentes

Qu'est-ce qu'une variable en Python ?
En Python, une variable est un nom qui fait référence à une valeur. Tu la crées en lui affectant une valeur, comme dans age = 30, sans déclarer de type, et le même nom peut ensuite désigner une valeur d'un autre type. Par convention, les noms de variables Python s'écrivent en snake_case.
Quelle est la définition simple d'une variable ?
Une variable est un nom pour une valeur qu'un programme stocke et peut modifier. Le nom reste le même tandis que la valeur associée peut être remplacée, comme un tableau d'affichage qui garde l'étiquette « Domicile » pendant que le score en dessous augmente.
Comment expliquer une variable à un enfant ?
Compare-la à une boîte avec une étiquette dessus. L'étiquette est le nom, comme score, et la boîte contient une seule chose à la fois. Tu peux regarder dedans pour voir ce qu'il y a, ou la vider et y mettre autre chose, et l'étiquette reste la même.
Quelle est la différence entre une variable et une constante ?
La valeur d'une variable peut changer après avoir été définie, alors que celle d'une constante est fixée une fois affectée. Java marque les constantes avec final, et JavaScript et C utilisent const. Python n'impose pas de constantes, donc les programmeurs écrivent le nom en majuscules, comme MAX_USERS, pour signaler qu'il ne doit pas changer.
Quels sont les types de variables en programmation ?
On classe généralement les variables selon l'endroit où elles sont visibles : les variables locales existent dans une seule fonction, les variables globales sont visibles dans tout un fichier ou tout un programme, et les variables d'instance appartiennent à un objet d'une classe. On les décrit aussi par le type de valeur qu'elles contiennent, comme un entier, un nombre à virgule flottante, une chaîne ou un booléen.
Coddy programming languages illustration

Apprendre à coder avec Coddy

COMMENCER