Apprenez en lisant dans l'ordre

Variables et types de données

Apprends à déclarer des variables en Python et à manipuler les types int, str et float avec les bonnes pratiques de nommage.

C'est quoi une variable ?

Une variable est une boîte avec un nom dans laquelle tu peux ranger des données. Par exemple, écris x = 10 et l'entier 10 se range dans x.

Tu peux ensuite lire la valeur via le même nom, ou l'écraser avec une nouvelle.

Comment une variable se relie à une valeur
Nom de variable(x)Valeur(10)Mémoireréférencestocke

Le nom de la variable référence une valeur, et la valeur vit en mémoire

Essayons dans la console. Tape x = 10 puis print(x) dans la console à droite et exécute.

Éditeur Python

Exécuter le code pour voir le résultat

Tu as bien vu 10 à droite ? C'est la sortie de print(x).

Quand tu appelles print(variable), cela affiche le contenu de la variable à l'écran.

À l'inverse, essayer d'utiliser une variable que tu n'as pas encore affectée déclenche une NameError. Python te dit qu'aucune variable de ce nom n'existe.

Il faut toujours affecter une variable avant de l'utiliser.

Voyons l'erreur dans la console.

Éditeur Python

Exécuter le code pour voir le résultat

C'est quoi un type ?

Chaque valeur que tu mets dans une variable a un type. Un type, c'est comme une étiquette qui dit de quel genre de donnée il s'agit.

Par exemple, 10 a le type entier (int) et "hello" a le type chaîne (str).

Type entier (int)

int est le type des entiers. Tout nombre sans virgule est traité comme un int.

La caractéristique clé d'int, c'est que tu peux faire des opérations arithmétiques dessus directement — addition, soustraction, multiplication, division.

Passe-le à type() et tu verras <class 'int'>, ce qui confirme que c'est bien un int.

Les bases d'int
10(littéral numérique)int10 + 5= 1510 * 3= 30<class 'int'>type fixéadditionmultiplievoir type
a = 10
b = 3

print(a + b)   # 13 (addition)
print(a - b)   # 7  (soustraction)
print(a * b)   # 30 (multiplication)
print(a // b)  # 3  (division entière : on jette le reste)
print(a % b)   # 1  (modulo : reste de la division)

print(type(a)) # <class 'int'>

On te donne total_minutes = 130 (un total en minutes).

① Utilise la division entière // pour calculer combien d'heures ça fait, et le modulo % pour les minutes restantes. Affiche chaque valeur avec print().

② Utilise type() pour afficher le type de total_minutes.

Éditeur Python

Exécuter le code pour voir le résultat

Type chaîne (str)

str est le type des chaînes de caractères. Tout ce qui est entouré de guillemets simples '...' ou doubles "..." devient un str.

Tu peux concaténer des chaînes avec +, ou obtenir leur longueur avec len().

Mets un nombre entre guillemets comme "10" et il devient un str — tu ne peux pas faire d'opérations dessus directement.

Les bases de str
"hello"littéral chaînestr"hello" + "!"= "hello!"len("hello")= 5type fixéconcatlongueur

Un littéral chaîne devient un str, et tu peux l'utiliser pour la concaténation et la longueur

greeting = "hello"
name = "Alice"

print(greeting + ", " + name + "!") # hello, Alice!
print(len(greeting))                 # 5 (longueur)

# Note : "10" est un str, donc tu ne peux pas faire de calcul dessus
num_str = "10"
# print(num_str + 5)  # TypeError !
print(int(num_str) + 5)              # 15 (ça marche après conversion avec int())

print(type(greeting))                # <class 'str'>

On te donne name = "Alice" et score = "95".

① Utilise + pour afficher "Alice a un score de 95 points.".

② Utilise len() pour afficher la longueur de name.

Éditeur Python

Exécuter le code pour voir le résultat

Mélanger des types différents

Quand les types diffèrent, ce que tu peux en faire change aussi. Deux entiers peuvent être additionnés, mais essayer d'additionner un entier et une chaîne déclenche un TypeError.

Voyons dans le code ci-dessous ce qui se passe quand tu mélanges int et str.

age = 25          # int
name = "Alice"    # str

# int + int, c'est OK
print(age + 10)          # 35

# str + str, c'est OK (concaténation)
print(name + " !")        # Alice !

# int + str déclenche une erreur
# print(age + name)      # TypeError: unsupported types for __add__: 'int', 'str'

# str() convertit pour pouvoir concaténer
print(str(age) + " ans")   # 25 ans

Exécute le code et confirme que tu obtiens un TypeError.

Éditeur Python

Exécuter le code pour voir le résultat

Déclarer et affecter des variables

Python utilise ce qu'on appelle le typage dynamique, donc contrairement à Java ou C, tu n'as pas besoin de déclarer un type à l'avance comme int x;.

Tu définis une variable simplement en utilisant = pour affecter la valeur de droite au nom de gauche.

Et une fois qu'une variable a une valeur, tu peux librement la réaffecter à une nouvelle.

Typage dynamique vs typage statique
Typagedynamique(Python)x = 10→ intx = 'hello'→ strTypagestatique(Java / C)int x = 10type obligatoirex = 'hello'erreur de compilationaffecteréaffecte OKdéclare typetype incompatible

Python détermine les types à l'exécution (dynamique), tandis que Java et C les fixent à la compilation (statique)

Voici un exemple d'affectation et de réaffectation. En Python, tu peux affecter sans préciser de type, et tu peux réaffecter autant de fois que tu veux.

# Affectation à des variables
name = "Alice"
age = 25

# Réaffectation (on écrase la valeur)
age = 26

# Affecte des valeurs différentes à plusieurs variables d'un coup (sur une seule ligne)
x, y, z = 1, 2, 3

Fais les trois étapes suivantes dans l'ordre, en affichant chaque résultat avec print().

① Affecte "Paris" à la variable city et affiche-la.

② Réaffecte city à "Lyon" et affiche-la (vérifie que tu peux écraser la même variable).

③ Affecte 10, 20, 30 à a, b, c en même temps et affiche les trois ensemble.

Éditeur Python

Exécuter le code pour voir le résultat

Règles de nommage des variables

Tu peux nommer tes variables comme tu veux, mais il y a quelques règles à respecter.

- Caractères autorisés : lettres (a-z, A-Z), chiffres (0-9) et underscore (_)

- Le premier caractère doit être une lettre ou un underscore (impossible de commencer par un chiffre)

- Les noms sont sensibles à la casse (age et Age sont deux variables différentes)

Nom de variableOK / NGRaison
user_nameOKLettres et underscores
age2OKCommence par une lettre ; les chiffres sont OK ensuite
_totalOKCommencer par un underscore est autorisé
2nd_userNGImpossible de commencer par un chiffre
user-nameNGLes tirets ne sont pas autorisés
user nameNGPas d'espaces autorisés

En plus, tu ne peux pas utiliser les mots réservés (keywords) de Python — des mots auxquels le langage a déjà donné un sens. Il y en a environ 35, dont 'for', 'if', 'class', 'return', 'True', 'None' et 'import'. Essaie d'en utiliser un comme nom de variable et tu obtiens un SyntaxError.

Voyons ce qui se passe quand tu exécutes un nom de variable qui ne respecte pas les règles.

Éditeur Python

Exécuter le code pour voir le résultat

Constantes — écrire des valeurs qui ne changent pas

Les valeurs que tu fixes une fois et que tu ne changes jamais s'appellent des constantes, et la convention en Python est de les écrire en majuscules avec des underscores.

Si le nombre 20 apparaît juste comme ça au milieu de ton code, le lecteur n'a aucune idée pourquoi c'est 20 (un nombre mystère comme ça s'appelle un magic number). Nomme-le comme une constante au début — LEGAL_AGE = 20 — et le sens est évident d'un coup d'œil, et quand tu veux changer la valeur tu n'as qu'une seule ligne à modifier.

# Les constantes en majuscules + underscores
LEGAL_AGE = 20
MAX_RETRY = 3
PI = 3.14159

print(f"L'âge légal est {LEGAL_AGE}")
print(f"Nombre max de tentatives : {MAX_RETRY}")
print(f"Pi vaut environ {PI}")

Python n'a pas de vraies constantes

Contrairement à C ou Java, Python n'a aucun moyen intégré d'interdire la réaffectation. Écris LEGAL_AGE = 20 puis LEGAL_AGE = 25 et il n'y a pas d'erreur — la valeur change, c'est tout. Vois les majuscules comme une convention entre développeurs qui dit « s'il te plaît, ne change pas ça ».

Calculons un prix TTC en utilisant une constante.

① Affecte 0.1 à la constante TAX_RATE (le taux de TVA).

② Affecte 980 à price.

③ Calcule le prix TTC (price × (1 + TAX_RATE)) et affiche-le avec print().

Éditeur Python

Exécuter le code pour voir le résultat

Vérifier et convertir des types

La fonction type() te dit le type de données d'une variable (quel genre de donnée elle contient). Et les fonctions intégrées comme int() et str() (les fonctions livrées avec Python par défaut) te permettent de convertir une valeur vers un autre type — c'est ce qu'on appelle la conversion de type, ou cast.

Par exemple, si tu veux faire des calculs sur un nombre arrivé sous forme de chaîne depuis l'entrée utilisateur, il faut le convertir en int avec int().

Voici un exemple où on vérifie des types et où on les convertit.

# Vérifier le type
x = 42
print(type(x))        # <class 'int'>
print(type("hello"))  # <class 'str'>

# Conversion de type
num_str = "100"
num_int = int(num_str)   # str → int
back_to_str = str(num_int)  # int → str

print(num_int + 50)  # 150
Flux de conversion de type
"100"strint()convertit100intstr()convertit"100"strpassestr→intpasseint→str

On te donne un prix sous forme de chaîne : price_str = "1980".

① Convertis-le en int avec int(), puis calcule et affiche le prix TTC (TVA de 10 % ajoutée).

② Utilise type() pour afficher le type avant (price_str) et après (price_int) la conversion.

Éditeur Python

Exécuter le code pour voir le résultat

ValueError quand la conversion est impossible

Passe à int() ou float() une chaîne qu'on ne peut pas lire comme un nombre, et tu obtiens un ValueError. Par exemple, int("abc") et float("hello") échouent tous les deux. Quand tu convertis des choses comme l'entrée utilisateur, enveloppe ça dans un try / except pour gérer l'exception.

Exécute le code et confirme que tu obtiens un ValueError. Gérer correctement un ValueError demande de la gestion d'exceptions.

Éditeur Python

Exécuter le code pour voir le résultat

Dans cet article tu as appris à utiliser les variables, les bases d'int et str, et comment fonctionne le typage dynamique.

De la vérification des types avec type() à la conversion de type avec int() et str(), en passant par le ValueError qui apparaît quand la conversion échoue — tu as une base complète sur les types de données en Python.

QUIZ

Vérification des connaissances

Répondez à chaque question une par une.

Question 1Lequel parmi ces noms ne peut pas être utilisé comme nom de variable ?

Question 2Que produit ce code ?
x = str(3.14)
print(type(x))

Question 3Que produit ce code ?
x = "10"
print(int(x) + 5)