Valeur et type des données
Introduction
En informatique, les données que nous manipulons ont différentes natures : des nombres, du texte, des réponses vrai/faux, etc. Chaque donnée possède un type qui détermine ce que l'on peut faire avec elle.
Qu'est-ce qu'un type de données ?
Le type d'une donnée correspond à : 1. L'ensemble des valeurs possibles pour cette donnée 2. Les opérateurs autorisés (ce qu'on peut faire avec)
Analogie
C'est comme les ingrédients en cuisine : - La farine (type "solide") : on peut la mélanger, la peser, la tamiser - L'eau (type "liquide") : on peut la verser, la chauffer, la mesurer en litres - On ne peut pas faire les mêmes opérations avec les deux !
Les types de base en Python
1. Le type NOMBRE (int et float)
Nombres entiers (int) :
- Valeurs possibles : ..., -2, -1, 0, 1, 2, 3, ...
- Exemples : 42, -7, 0, 2024
Nombres décimaux (float) :
- Valeurs possibles : nombres avec virgule
- Exemples : 3.14, -0.5, 2.0, 98.6
Opérations autorisées sur les nombres :
# Addition
a = 10 + 5 # 15
# Soustraction
b = 10 - 3 # 7
# Multiplication
c = 4 * 5 # 20
# Division
d = 10 / 2 # 5.0 (résultat toujours en float)
# Division entière
e = 10 // 3 # 3 (partie entière)
# Modulo (reste de la division)
f = 10 % 3 # 1 (le reste de 10 divisé par 3)
# Puissance
g = 2 ** 3 # 8 (2 à la puissance 3)
Exemples d'utilisation :
age = 15 # int
taille = 1.65 # float
temperature = -5 # int
# Calculs
dans_10_ans = age + 10
prix_total = 12.50 * 3
2. Le type CHAÎNE DE CARACTÈRES (str)
Une chaîne de caractères (string) représente du texte.
- Valeurs possibles : n'importe quel texte
- Délimitée par des guillemets simples
'...'ou doubles"..." - Exemples :
"Bonjour",'Python',"123","Marie"
Opérations autorisées sur les chaînes :
# Concaténation (coller deux textes)
prenom = "Marie"
nom = "Dupont"
nom_complet = prenom + " " + nom # "Marie Dupont"
# Répétition
rire = "Ha" * 3 # "HaHaHa"
# Longueur
message = "Bonjour"
longueur = len(message) # 7
# Accès à un caractère (index commence à 0)
premiere_lettre = message[0] # "B"
derniere_lettre = message[-1] # "r"
# Extraction (slicing)
debut = message[0:3] # "Bon"
# Mise en majuscules/minuscules
majuscule = message.upper() # "BONJOUR"
minuscule = message.lower() # "bonjour"
# Remplacement
nouveau = message.replace("jour", "soir") # "Bonsoir"
Attention aux pièges :
# "123" est une chaîne, pas un nombre !
age_texte = "15"
age_nombre = 15
# On ne peut pas faire :
# resultat = age_texte + 5 # ERREUR !
# Il faut convertir :
resultat = int(age_texte) + 5 # 20
3. Le type BOOLÉEN (bool)
Le type booléen ne peut prendre que deux valeurs : True (vrai) ou False (faux).
Utilisation principale : conditions et tests
# Valeurs directes
est_majeur = False
a_telephone = True
# Résultats de comparaisons
age = 15
peut_conduire = (age >= 18) # False
# Opérateurs de comparaison
a = 10
b = 5
resultat1 = (a == b) # False (égal à)
resultat2 = (a != b) # True (différent de)
resultat3 = (a > b) # True (supérieur à)
resultat4 = (a < b) # False (inférieur à)
resultat5 = (a >= b) # True (supérieur ou égal)
resultat6 = (a <= b) # False (inférieur ou égal)
Avec les chaînes :
Vérifier le type d'une variable
En Python, on peut vérifier le type avec la fonction type() :
age = 15
nom = "Alice"
est_present = True
note = 15.5
print(type(age)) # <class 'int'>
print(type(nom)) # <class 'str'>
print(type(est_present)) # <class 'bool'>
print(type(note)) # <class 'float'>
Conversion entre types
On peut transformer une donnée d'un type vers un autre (quand c'est possible) :
# Chaîne vers nombre
age_texte = "15"
age_nombre = int(age_texte) # 15
note_texte = "15.5"
note_nombre = float(note_texte) # 15.5
# Nombre vers chaîne
age = 15
age_en_texte = str(age) # "15"
# Nombre vers booléen
nombre = 5
en_bool = bool(nombre) # True (tout sauf 0 donne True)
nombre_zero = 0
en_bool2 = bool(nombre_zero) # False
# Chaîne vers booléen
texte1 = "Bonjour"
bool1 = bool(texte1) # True (chaîne non vide)
texte2 = ""
bool2 = bool(texte2) # False (chaîne vide)
Erreurs courantes liées aux types
Erreur 1 : Mélanger texte et nombre
# ❌ ERREUR
age = 15
message = "J'ai " + age + " ans" # TypeError !
# ✅ CORRECT
age = 15
message = "J'ai " + str(age) + " ans" # "J'ai 15 ans"
Erreur 2 : Mauvaise conversion
# ❌ ERREUR
texte = "Bonjour"
nombre = int(texte) # ValueError ! (on ne peut pas convertir du texte en nombre)
# ✅ CORRECT
texte = "123"
nombre = int(texte) # 123