Les types de données simples⚓︎
Découverte des principaux types de données simples⚓︎
Nous avons vu que Python sait manipuler différents types de données : des nombres entiers, des nombres à virgules, du texte et d'autres encore...
Voyons comment Python nomme chacun de ces types, en utilisant la commande
type()
.
Tapez par exemple type(6)
puis type(6.0)
.
Explications
Python répond que 6 est de type entier, ce qui s'écrit int
dans son langage.
Par contre le nombre 6.0 est vu comme un nombre à virgule, ce qui s'écrit float
(nombre à virgule flottante).
Exercice
Essayez de trouver un autre type de valeurs.
Réponse
La commande type('Bonjour')
renvoie str
, c'est le type des chaînes de caractères.
Une autre fonction qui peut occasionnellement servir est la fonction isinstance()
, par exemple tapez isinstance(6, int)
.
Explication
A la question "6 est-il un entier ?", Python répond True
c'est-à-dire Vrai.
Exercice
- Testez la fonction
isinstance()
avec d'autres valeurs et d'autres types. - En fait,
True
est aussi une valeur. Quel est le type de cette valeur ? - A votre avis, combien de valeurs sont de ce type ?
- En sciences, le nombre entier 600000000 est noté \(6 \times 10^8\) et en Python
6e8
. Quel est le type de ce nombre ? - En mathématiques, le résultat de 14/7 est un nombre entier. Qu'en est-il en Python ?
- Tapez l'expression
1 == 2
et validez (essayez également1 = 2
au passage). Faîtes de même avec-4 < -3
. Quel est le type des résultats ?
À retenir
- En Python, les principaux types simples sont :
Type | Désignation | Exemple |
---|---|---|
int |
nombre entier | 16 |
float |
nombre flottant (nombre à virgule) | 1.25 |
str |
chaîne de caractères | "Bonjour !" |
bool |
booléen | True |
- Les fonctions
type()
etisinstance()
permettent d'avoir des informations sur une valeur. - Le nombre 5 est de type
int
tandis que 5.0 est de typefloat
. - Une division entre entiers donne un flottant.
- Pour tester une égalité entre deux nombres il faut utiliser
==
. Le résultat d'un test est un booléen.
Compléments
- Il existe d'autres types de valeurs, citons par exemple
complex
,unicode
,tuple
,list
,dict
,file
,function
. - Certains, comme
list
sont dits construits (nous y reviendrons). - Nous reviendrons plus en détail sur les types simples plus tard : il nous reste des choses à découvrir...
Exercice
Faîtes cet exercice sans utiliser Python.
Conversion entre types⚓︎
Imaginons qu'un capteur détecte une température de 20° ; nous aimerions que l'ordinateur affiche cette information sous la forme d'un texte tel que "La température est de 20 degrés Celsius".
Il y a dans cette phrase une partie fixe (le texte 'La température est de '
et ' degrés Celsius'
) et une partie variable (la température, qui est de 20° actuellement), de sorte qu'on aimerait taper ceci :
'La température est de ' + 20 + ' degrés Celsius'
mais ceci ne peut pas fonctionner (nous ne pouvons pas ajouter un entier et un string).
Nous allons donc devoir convertir l'entier 20 en la chaîne de caractères '20'.
La fonction Python str()
permet de faire cela, essayez en tapant str(20)
puis 'La température est de '+ str(20) + ' degrés Celsius'
.
Voilà trois fonctions de conversion :
Fonction | Utilité | Exemple |
---|---|---|
int |
convertit en entier | int('12') renvoie le nombre 12 |
float |
convertit en nombre flottant (à virgule) | float('3.1415926') renvoie le nombre 3.1415926 |
str |
convertit en chaîne de caractères | str(8.2) renvoie le texte '8.2' |
Remarques
str(3 + 2)
ne donnera pas la chaîne '3 + 2' mais la chaîne '5' ;1 + 2.5
donnera 3.5 : ici il y a conversion automatique de l'entier 1 en flottant 1.0 pour que l'opération puisse se faire.
Exercice
- Peut-on appliquer la fonction
int()
aux nombres flottants ? Que donneint(2.99)
? - Peut-on l'appliquer aux chaînes de caractères ?
- Peut-on l'appliquer aux booléens ?
- Essayez de deviner ce que donnera
str(5) + str(1)
puisstr(5 + 1)
.
Réponses
- Oui mais cela ne donne pas forcément un arrondi mais une troncature, ainsi
int(2.99)
donne 2, pas 3. - Cela dépend :
int('6')
donnera 6 maisint('Bonjour')
ou mêmeint('2.5')
conduiront à une erreur. - Oui, cela convertit
True
en 1 etFalse
en 0 (d'ailleurs dans d'anciens langages c'est ainsi que l'on pouvait représenter une situation de vrai ou faux). str(5) + str(1)
donnera'51'
tandis questr(5 + 1)
donnera'6'
.
Exercice
Rappel : à faire sans utiliser la console Python.