Aller au contenu

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

  1. Testez la fonction isinstance() avec d'autres valeurs et d'autres types.
  2. En fait, True est aussi une valeur. Quel est le type de cette valeur ?
  3. A votre avis, combien de valeurs sont de ce type ?
  4. En sciences, le nombre entier 600000000 est noté \(6 \times 10^8\) et en Python 6e8. Quel est le type de ce nombre ?
  5. En mathématiques, le résultat de 14/7 est un nombre entier. Qu'en est-il en Python ?
  6. Tapez l'expression 1 == 2 et validez (essayez également 1 = 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() et isinstance() permettent d'avoir des informations sur une valeur.
  • Le nombre 5 est de type int tandis que 5.0 est de type float.
  • 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

  1. Peut-on appliquer la fonction int() aux nombres flottants ? Que donne int(2.99) ?
  2. Peut-on l'appliquer aux chaînes de caractères ?
  3. Peut-on l'appliquer aux booléens ?
  4. Essayez de deviner ce que donnera str(5) + str(1) puis str(5 + 1).

Réponses
  1. Oui mais cela ne donne pas forcément un arrondi mais une troncature, ainsi int(2.99) donne 2, pas 3.
  2. Cela dépend : int('6') donnera 6 mais int('Bonjour') ou même int('2.5') conduiront à une erreur.
  3. Oui, cela convertit True en 1 et False en 0 (d'ailleurs dans d'anciens langages c'est ainsi que l'on pouvait représenter une situation de vrai ou faux).
  4. str(5) + str(1) donnera '51' tandis que str(5 + 1) donnera '6'.

Exercice

Rappel : à faire sans utiliser la console Python.