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 :
- les entiers (integer) :
5
,9654
,0
,-4984
; - les nombres à virgule flottante (float, avec un point à la place de la virgule, c'est la norme anglo-saxonne) :
35.45
,-4.2
,0.000475
; - les chaînes de caractère (string, délimitée par des simples quotes
'
ou des doubles quotes"
) :'toto'
,"Salut ?"
.
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
;'596'
;monique
.
15.0
: float'596'
: stringmonique
: 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)
;float(-200)
;str("michel")
.
>>> 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