Les variables en Python

@joekakone

Joseph Konka @joekakone

03/03/2026 · 9 min

Découvrez le modèle d'objets et de références de Python. Maîtrisez les types scalaires (int, float, str, bool, None), le typage dynamique et fort, les annotations de type (type hints) et les conventions PEP 8.

Les variables en langage Python#

En programmation, une variable permet de mémoriser temporairement une information au cours de l'exécution d'un programme. Cependant, la façon dont Python gère les variables en mémoire est très différente des langages compilés traditionnels comme le C ou Java.


1. Le modèle de mémoire de Python : Noms et Références#

Dans des langages comme le C, déclarer une variable réserve un emplacement mémoire fixe dans lequel on écrit une valeur.
En Python, tout est objet. Une variable n'est pas une case mémoire, mais une étiquette (ou référence) qui pointe vers un objet hébergé dans le Tas (Heap) de l'interpréteur.

flowchart LR
    subgraph Espace de Noms
        A[nom = 'Alice']
        B[age = 25]
    end
    subgraph Memoire Objets
        Obj1["Objet str : 'Alice' (id: 0x10a)"]
        Obj2["Objet int : 25 (id: 0x10b)"]
    end
    A --> Obj1
    B --> Obj2

Vous pouvez inspecter l'adresse mémoire unique de l'objet référencé grâce à la fonction id() :

x = 1000
y = 1000

print(id(x))  # Affiche par ex. 140582910243280
print(id(y))  # Deux objets distincts peuvent avoir des adresses différentes

2. Les types scalaires fondamentaux#

Python propose cinq types de données primitifs incontournables :

Type Description Exemples
int Entier relatif de précision arbitraire (pas de dépassement de capacité d'entier en Python 3 !) 42, -7, 10_000_000
float Nombre réel à virgule flottante (double précision 64 bits IEEE 754) 3.14159, -0.05, 1.5e3
str Chaîne de caractères Unicode 'Bonjour', "Python 3"
bool Booléen logique (sous-classe de int) True, False
NoneType Représente l'absence explicite de valeur None

Vérification du type : type() et isinstance()#

Pour identifier le type d'une variable à l'exécution :

valeur = 3.14

# 1. Utilisation de type()
print(type(valeur))  # <class 'float'>

# 2. Utilisation recommandée : isinstance() (gère l'héritage)
if isinstance(valeur, float):
    print("La variable est bien un nombre decimal.")

3. Typage dynamique et réassignation#

En Python, vous n'avez pas besoin de spécifier le type lors de la création d'une variable. L'interpréteur déduit automatiquement le type à partir de la valeur assignée avec le symbole d'affectation = :

compteur = 10        # Type int
compteur = "Dix"     # Valide en Python : compteur référence maintenant un str

[!WARNING] Bien que le typage soit dynamique, Python est fortement typé. Il n'effectue aucune conversion automatique hasardeuse :

a = "10"
b = 5
# print(a + b)  -> Déclenche un TypeError !
print(int(a) + b)  # Conversion explicite : 15


4. Fonctionnalités avancées d'affectation#

Affectation multiple et échange direct#

Python permet d'assigner plusieurs variables sur une seule ligne et propose une syntaxe d'échange particulièrement élégante sans nécessiter de variable temporaire :

# Affectation simultanée
nom, age, actif = "Joseph", 34, True

# Échange de valeurs (Swapping élégant)
a = 10
b = 20
a, b = b, a  # a devient 20, b devient 10 instantanément !

Valeur identique partagée#

x = y = z = 0  # Les trois variables référencent le même objet entier 0

5. Les annotations de type (Type Hints - PEP 484)#

Depuis Python 3.5+, il est vivement recommandé d'annoter le type attendu de vos variables. Ces annotations ne bloquent pas l'exécution de Python, mais permettent aux outils d'analyse statique (mypy) et aux IDE (PyCharm, VS Code) de détecter vos bugs avant l'exécution :

score_maximum: int = 100
taux_tva: float = 0.20
nom_projet: str = "AlgoJungle Core"
est_verifie: bool = False

6. Conventions de nommage (Guide de style PEP 8)#

Pour écrire un code Python lisible et partagé par la communauté : - Variables et fonctions : Utilisez le format snake_case en lettres minuscules séparées par des tirets bas (ex: prix_unitaire, nombre_etudiants). - Constantes : Utilisez le format UPPER_SNAKE_CASE en majuscules (ex: VITESSE_LUMIERE = 299792458). - Noms significatifs : Évitez les variables à une seule lettre comme x ou a, sauf pour les indices de boucles mathématiques (i, j).


7. Mise en pratique : Fiche signalétique d'un étudiant#

Créez un script qui initialise et affiche les attributs d'un profil étudiant :

# Définition des variables avec annotations de type
identifiant: int = 1042
nom_complet: str = "Amina Diop"
moyenne_generale: float = 16.75
admis: bool = moyenne_generale >= 10.0

# Affichage des informations et de leurs types
print(f"ID Etudiant : {identifiant} (Type: {type(identifiant).__name__})")
print(f"Nom         : {nom_complet} (Type: {type(nom_complet).__name__})")
print(f"Moyenne     : {moyenne_generale} / 20")
print(f"Statut admis: {admis}")

8. Défi d'application#

Écrivez un script qui déclare une variable temperature_celsius = 25.0, calcule sa conversion en degrés Fahrenheit selon la formule \(F = C \times \frac{9}{5} + 32\), puis réaffecte le résultat dans une nouvelle variable temperature_fahrenheit avec vérification par isinstance().

Commentaires

Inscrivez-vous à une formation complète

Voir le catalogue