Question 1Lequel parmi ces noms ne peut pas être utilisé comme nom de variable ?
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.
Le nom de la variable référence une valeur, et la valeur vit en mémoire
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.
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.
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'>
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.
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'>
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
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.
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
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 variable | OK / NG | Raison |
|---|---|---|
| user_name | OK | Lettres et underscores |
| age2 | OK | Commence par une lettre ; les chiffres sont OK ensuite |
| _total | OK | Commencer par un underscore est autorisé |
| 2nd_user | NG | Impossible de commencer par un chiffre |
| user-name | NG | Les tirets ne sont pas autorisés |
| user name | NG | Pas 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.
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 ».
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
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.
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.
Vérification des connaissances
Répondez à chaque question une par une.
Question 2Que produit ce code ?x = str(3.14)
print(type(x))
Question 3Que produit ce code ?x = "10"
print(int(x) + 5)