Logo de kxs.frCours d'informatique pour le lycée et la prépa

Types de base

Définition

Il est possible d'affecter presque n'importe quoi à une variable en Python. Nous verrons dans un premier temps les trois types de variables les plus simples, on les appelle les types de base.

Il existe 3 types de base en Python :

Attention ! un entier ou un nombre à virgule flottante entre quotes est une chaine de caractère !

Trouver le type d'une valeur

Il existe une fonction (nous verrons plus tard ce qu'est vraiment une fonction) qui donne le type d’une valeur en Python, elle s’appelle type().

1) Noter le résultat des instructions suivantes :

>>> type(856)
>>> type("Message")
>>> type(621.48)
>>> type(856)
<class 'int'>
>>> type("Message")
<class 'str'>
>>> type(621.48)
<class 'float'>

2) À l’aide de la question précédente, donner la forme sous laquelle Python appelle les trois types de base (après le « class »).

  • entier : int
  • chaine de caractères : str (pour string)
  • nombre à virgule : float

3) Donner le type des valeurs suivantes (il y a un piège) :

  • 15.0 : float
  • '596' : string
  • monique : aucun, c'est une variable non définie.

Conversions entre types

Il est parfois nécessaire de convertir une valeur d'un type à un autre. Nous allons voir toutes les conversions possibles.

Conversion en float

La fonction qui permet de faire une conversion vers le type float est float(). Elle peut convertir un entier mais aussi une chaîne de caractères quand cela est possible :

>>> float(4)
4.0
>>> float("45.8")
45.8
>>> float("45cd")
	ValueError: could not convert string to float: '45cd'

Conversion en int

Ici on utilisera la fonctionint(). Si on lui donne un float, elle arrondi à la valeure absolue inférieure. Avec une chaine de caractère elle fait la conversion si la chaine est un entier valide. Voyons les exemples suivants pour comprendre :

>>> int(4.98)
4
>>> int(-4.98)
-4
>>> int("961")
961
>>> int("912.4")
	ValueError: invalid literal for int() with base 10: '912.4'
>>> int("lulu")
	ValueError: invalid literal for int() with base 10: 'lulu'

Convertion en string

La conversion en chaîne de caractère se fait avec la fonction str(). Elle transforme n'importe quel entier ou nombre à virgule flotante en chaîne de caractère :

>>> str(65)
'65'
>>> str(-42.67)
'-42.67'

4) Que retournent les instructions suivantes ?

>>> int(9.9999999)
9
>>> float(-200)
-200.0
>>> str("michel")
'michel'

5) Quelle serait la solution pour convertir "912.4" en un entier ?

>>> int(float("912.4"))
912