SNT · Chapitre 15 · Activité 2

📦 Les types de variables

Activité interactive · Seconde — int, float, str, bool

🔢 int 🔣 float 💬 str ✅ bool 🔄 Conversions
Ma progression 0 / 11 exercices
1
Les 4 types de base

En Python, chaque valeur a un type. Le type, c'est la nature de la valeur : est-ce un nombre entier ? un nombre décimal ? du texte ? un vrai/faux ?

Il y a 4 types à connaître pour l'instant :

int Entier 5   -3   100   0
float Décimal 3.14   -0.5   2.0
str Texte "Bonjour"   "42"
bool Vrai / Faux True   False
📘 Le mot str

Le mot str vient de l'anglais string, qui signifie « chaîne de caractères ». En Python, tout ce qui est entre guillemets est un str, même si ça ressemble à un nombre : "42" est du texte, pas un nombre !

❓ Question 1

Quel est le type de la valeur 3.14 ?

Aint — c'est un nombre
Bfloat — c'est un nombre avec une partie décimale
Cstr — ça contient un point comme du texte
✅ Bonne réponse : B — float.

En Python, tout nombre qui contient un point (même 2.0) est de type float. Le type int est réservé aux entiers : 2, 100, -7.
❓ Question 2

Quelle est la différence entre 7 et "7" ?

A7 est un entier (int), "7" est du texte (str). Ce n'est pas la même chose pour Python.
BIl n'y a pas de différence, Python comprend les deux de la même façon.
C"7" vaut plus que 7 car les guillemets ont une valeur.
✅ Bonne réponse : A.

Les guillemets changent tout : 7 (sans guillemets) est le nombre sept, on peut l'additionner. "7" (avec guillemets) est le caractère sept, c'est du texte. 7 + 3 = 10, mais "7" + "3" = "73" !
❓ Question 3

Parmi ces valeurs, laquelle est de type bool ?

A"True"
B1
CTrue
✅ Bonne réponse : C — True.

True et False (sans guillemets, avec une majuscule) sont les deux seules valeurs de type bool. "True" avec guillemets est du texte (str), et 1 est un entier (int).
2
Entier ou décimal ? — int vs float

La différence entre int et float est simple : est-ce qu'il y a une virgule (un point en Python) ou pas ?

🔍 Exemples
types.py
nb_eleves = 30       # int — un entier, pas de point
moyenne   = 13.5     # float — un décimal, avec un point
prix      = 2.0      # float aussi ! Le .0 suffit
🇫🇷 → 🇺🇸  Attention ! En France on écrit les décimaux avec une virgule : 3,14.
En Python, c'est un point : 3.14. Écrire 3,14 dans Python causera une erreur !
✏️ Exercice 4

Un programme stocke la taille d'un élève en mètres (1,75 m) et son âge en années entières. Complète les types dans les commentaires.

exercice4.py
taille = 1.75   # type : 
age    = 16     # type : 
1.75 contient un point → c'est un float. 16 n'a pas de point → c'est un int.
❓ Question 5

Que va afficher ce code ?

question5.py
print(10 / 2)
A5
B5.0
C10/2
✅ Bonne réponse : B — Python affiche 5.0.

En Python, l'opérateur / donne toujours un résultat de type float, même si le résultat est un entier. C'est pour ça qu'on obtient 5.0 et non 5. Ce petit point peut surprendre la première fois !
3
Le grand piège — mélanger str et nombres

Voici le piège classique numéro 1 en Python. Observe bien la différence :

✘ Résultat surprise
piege.py
a = "5"
b = "3"
print(a + b)
# affiche : 53
✔ Résultat attendu
correct.py
a = 5
b = 3
print(a + b)
# affiche : 8
💡 Pourquoi ? Sur des str, le + colle les textes côte à côte : "5" + "3" = "53" (comme assembler deux étiquettes). Sur des int, le + additionne : 5 + 3 = 8.
❓ Question 6

Que va afficher ce code ?

question6.py
prenom = "Ali"
nom    = "Baba"
print(prenom + nom)
AUne erreur — on ne peut pas additionner deux textes
BAliBaba
CAli Baba (avec un espace)
✅ Bonne réponse : B — Python affiche AliBaba.

Le + entre deux str les colle sans ajouter d'espace. Pour avoir un espace, il faudrait écrire prenom + " " + nom, ce qui donnerait Ali Baba.
❓ Question 7

Ce code va-t-il fonctionner ? Si non, pourquoi ?

question7.py
age = "16"
print(age + 1)
AOui, Python affiche 17
BOui, Python affiche 161
CNon, Python affiche une erreur — on ne peut pas mélanger str et int
✅ Bonne réponse : C — Python affiche une erreur.

Python ne sait pas quoi faire quand on essaie de mélanger un texte ("16") et un entier (1) avec +. Il affiche TypeError: can only concatenate str (not "int") to str. Pour que ça marche, il faut convertir "16" en entier : int("16") + 1 = 17.
4
Activité — Trie les valeurs dans les bonnes boîtes

Maintenant c'est à toi de jouer. Clique sur chaque valeur pour la placer dans la bonne colonne.

🎮 Trieur de types

Clique sur une valeur puis clique sur la colonne où elle appartient.

42 3.14 "Bonjour" -7 "42" 2.0 "Python" 0 -0.5
🔢 int
Entiers
🔣 float
Décimaux
💬 str
Texte
5
Changer de type — les conversions

On peut transformer une valeur d'un type en un autre. C'est ce qu'on appelle une conversion.

📘 Les 3 fonctions de conversion
conversions.py
int("15")      # → 15      le texte "15" devient l'entier 15
float("3.14")  # → 3.14    le texte devient un décimal
str(42)        # → "42"    le nombre 42 devient le texte "42"
🔍 Exemple — Pourquoi convertir ?

Quand l'utilisateur tape quelque chose au clavier, Python reçoit toujours du texte (str). Si on veut faire un calcul avec ce qu'il a tapé, il faut convertir :

calcul.py
saisie = "8"          # c'est du texte, pas un nombre
nombre = int(saisie)   # on convertit en entier
print(nombre + 2)      # affiche 10 ✔
saisiecontient "8" — du texte
int(saisie)transforme "8" en l'entier 8
nombre + 2calcule 8 + 2 = 10
✏️ Exercice 8

L'utilisateur a tapé "12" (du texte). Convertis-le en entier pour pouvoir lui ajouter 3.

exercice8.py
saisie = "12"
nombre = (saisie)
print(nombre + 3)    # doit afficher 15
Pour transformer du texte en entier, on utilise la fonction int(). On écrit le texte à convertir entre les parenthèses.
Terminal Python
✏️ Exercice 9

On veut convertir la chaîne "3.14" en un nombre décimal. Quelle fonction utiliser ?

exercice9.py
texte = "3.14"
pi = (texte)
print(pi + 1)    # doit afficher 4.140000000000001
"3.14" contient un point — c'est un décimal. La fonction pour convertir en décimal, c'est float().
Terminal Python
✏️ Exercice 10

On veut afficher une phrase qui mélange du texte et un nombre. Complète pour convertir le nombre en texte afin de pouvoir le coller avec +.

exercice10.py
score = 42
message = "Ton score : " + (score)
print(message)    # doit afficher : Ton score : 42
On ne peut pas coller un str et un int directement. Il faut d'abord convertir le nombre en texte avec str().
Terminal Python
❓ Question finale

Que va afficher ce code ?

final.py
n = int("5")
print(n * 3)
A555
B"5" * 3
C15
✅ Bonne réponse : C — Python affiche 15.

int("5") convertit le texte "5" en l'entier 5. Ensuite 5 * 3 = 15. Si on n'avait pas converti (n = "5"), alors n * 3 aurait collé 3 fois le texte : "555".
0 / 11
exercices réussis
🏠