Type d’un objet en Python
Sommaire
- 1- Objectifs
- 2- Présentation
- 3- Déterminer le type d'un objet
- 3.1- La fonction type()
- 3.2- La fonction isinstance()
- 3.3- La différence entre type () et isinstance ()
- 4- Vérifier les chaînes de caractères
- 4.1- La méthode
isalnum()
- 4.2- La méthode
isalpha()
- 4.3- La méthode
isdigit()
- 4.4- La méthode
isnumeric()
- 4.5- La méthode
isdecimal()
- 5- Conversion de types
- 6- Applications
- 6.1.1- Sommaire du cours Python
Type d’un objet en Python
-
Objectifs
- Etre capable de déterminer le type d’un objet en objet
-
Présentation
- Sous Python, il n’est pas nécessaire d’écrire des lignes de programme spécifiques pour définir le type des variables avant de pouvoir les utiliser.
- Le langage Python est un langage typé dynamiquement : les variables ne sont pas typées à l’avance, leur type est défini en fonction de la valeur qu’elles contiennent.
- À tout objet Python est associé :
- Un emplacement en mémoire dans lequel est rangé sa représentation binaire ;
- Un type qui désigne sa nature.
-
Déterminer le type d’un objet
- En Python, pour obtenir le type d’un objet ou déterminer s’il s’agit d’un type spécifique, utilisez les fonctions intégrées
type()
etisinstance()
. - Il est possible de déterminer le type d’un objet grâce à deux fonctions différentes. Bien qu’elles aient un fonctionnement similaire pour les types de base, elles diffèrent dans la gestion des types personnalisés.
-
La fonction type()
- La fonction
type()
retourne le type d’un objet. - Elle gère tous les types de base du langage Python mais également les types personnalisés que vous avez créés dans votre programme.
- Cette fonction est utilisée pour connaître le type d’une donnée ou le type de la valeur d’une variable.
-
La fonction isinstance()
- La fonction
isinstance()
est une fonction intégrée qui renvoie un booléen indiquant si un objet est une instance ou une sous-classe d’un autre objet - Elle prend en premier argument la variable et en deuxième argument le type à tester et retourne true si la variable est bien de ce type.
isinstance()
accepte également en deuxième argument un tuple de type et retourne true si la variable appartient à l’un des types.- Pour plus d’information visitez la page: La fonction isinstance()
-
La différence entre type () et isinstance ()
- La différence entre
type()
etisinstance()
est queisinstance()
renvoie True même pour les instances de sous-classes qui héritent de la classe spécifiée dans le deuxième argument.
>>> type(15)
int
>>> a = 15
>>> type(a)
int
>>> a = "toto"
>>> type(a)
str
>>> isinstance(1, int)
true
>>> type(1) is int
true
>>> isinstance(Coucou, (int, str))
True
La fonction
isinstance()
intégrée est recommandée pour tester le type d’un objet, car elle prend en compte les sous-classes.
Vérifier les chaînes de caractères
-
La méthode
isalnum()
- La méthode
isalnum ()
renvoie True si tous les caractères de la chaîne sont alphanumériques (alphabets ou nombres). Sinon, il renvoie False. - La syntaxe de isalnum()est:
string.isalnum ()
- Valeur renvoyée par isalnum ()
- Vrai si tous les caractères de la chaîne sont alphanumériques
- Faux si au moins un caractère n’est pas alphanumérique
- Exemple
nom = "M234hamed"
print(nom.isalnum())
# contains whitespace
nom = "M3hamed Gell22er "
print(nom.isalnum())
nom = "Mo3nicaGell22er"
print(nom.isalnum())
nom = "133"
print(nom.isalnum())
Production
Vrai
Faux
Vrai
Vrai
La méthode isalpha()
- La méthode
isalpha ()
renvoie True si tous les caractères de la chaîne sont des alphabets. Sinon, il renvoie False. - La syntaxe de isalpha()est:
string.isalpha()
- Valeur renvoyée par isalpha()
- Vrai si tous les caractères de la chaîne sont des alphabets.
- Faux si au moins un caractère n’est pas un alphabet.
- Exemple
nom = "Mohamed"
print(nom.isalpha())
# contains whitespace
nom = "Mohamed Geller"
print(nom.isalpha())
# contains number
nom = "Mo3hamedGell22er"
print(nom.isalpha())
Production
Vrai
Faux
Faux
La méthode isdigit()
- La méthode
isdigit()
renvoie True si tous les caractères de la chaîne sont des chiffres. Sinon, il renvoie False. - La syntaxe de isdigit()est:
string.isdigit()
- Valeur renvoyée par isdigit()
- Vrai si tous les caractères sont des chiffres.
- Faux si au moins un caractère n’est pas un chiffre.
- En Python, les exposants et les indices (généralement écrits en Unicode) sont également considérés comme des caractères numériques. Par conséquent, si la chaîne contient ces caractères avec des caractères décimaux,
isdigit()
renvoie Vrai. - Les chiffres romains, les numérateurs de devises et les fractions (généralement écrits en Unicode) sont considérés comme des caractères numériques mais pas des chiffres. Les
isdigit()
retours Faux si la chaîne contient ces caractères. - Exemple
s = "28212"
print(s.isdigit())
# contains alphabets and spaces
s = "Mo3 nicaG el l22er"
print(s.isdigit())
Production
Vrai
Faux
La méthode isnumeric()
- La méthode
isalpha ()
renvoie True si tous les caractères de la chaîne sont des caractères numériques. Sinon, il renvoie False. - Un caractère numérique a les propriétés suivantes:
- Numeric_Type = Décimal
- Numeric_Type = Chiffre
- Numeric_Type = Numérique
- En Python, les caractères décimaux (comme: 0, 1, 2 ..), les chiffres (comme: l’indice, l’exposant) et les caractères ayant la propriété de valeur numérique Unicode (comme: fraction, chiffres romains, numérateurs de devises) sont tous considérés comme des caractères numériques.
- La syntaxe de isnumeric()est:
string.isnumeric()
- Valeur renvoyée par isnumeric()
- Vrai si tous les caractères de la chaîne sont des caractères numériques.
- Faux si au moins un caractère n’est pas un caractère numérique.
- Exemple
s = '1242323'
print(s.isnumeric())
#s = '²3455'
s = '\u00B23455'
print(s.isnumeric())
# s = '½'
s = '\u00BD'
print(s.isnumeric())
s = '1242323'
s='python12'
print(s.isnumeric())
Production
Vrai
Vrai
Vrai
Faux
La méthode isdecimal()
- La méthode
isdecimal()
renvoie True si tous les caractères de la chaîne sont des caractères décimaux. Sinon, il renvoie False. - La syntaxe de isdecimal()est:
string.isdecimal()
- Valeur renvoyée par isdecimal()
- Vrai si tous les caractères sont des décimaux.
- Faux si au moins un caractère n’est pas un caractère décimal.
- L’exposant et les indices sont considérés comme des caractères numériques mais pas des décimales. Si la chaîne contient ces caractères (généralement écrits en Unicode),
isdecimal()
renvoie Faux. - De même, les chiffres romains, les numérateurs de devises et les fractions sont considérés comme des nombres numériques (généralement écrits en Unicode) mais pas des décimales. Le
isdecimal()
retourne également Faux dans ce cas. - Il existe deux méthodes
isdigit()
etisnumeric()
qui vérifie si la chaîne contient des caractères numériques et des caractères numériques respectivement. - Exemple
s = '23455'
print(s.isdecimal())
#s = '²3455'
s = '\u00B23455'
print(s.isdecimal())
# s = '½'
s = '\u00BD'
print(s.isdecimal())
Production
Vrai
Faux
Faux
Conversion de types
- En programmation, on est souvent amené à convertir les types, c’est-à-dire passer d’un type numérique à une chaîne de caractères ou vice-versa.
- En Python, rien de plus simple avec les fonctions
int()
,float()
etstr()
. - Exemple:
>>> i = 3
>>> str (i)
'3'
>>> i = '456'
>>> int (i)
456
>>> float (i)
456.0
>>> i = '3.1416 '
>>> float (i)
3.1416