La fonction abs - calculer des valeur absolues en Python
Comment obtenir des valeurs absolues en Python ? Découvrez tout sur la fonction “abs” qui permet de calculer les valeurs absolues et comment la personnaliser !
En Python, on peut obtenir la valeur absolue d’un nombre en utilisant la fonction native abs()
.
La fonction abs()
prend un seul nombre (entier ou décimal) en paramètre et renvoie sa valeur absolue.
Par exemple, appliquons la fonction abs()
pour obtenir la valeur absolue d’un nombre : -42
.
print(abs(-42))
Ce qui donnera sur la sortie standard :
42
C’est probablement tout ce que vous avez besoin de savoir sur la fonction abs()
en Python.
Mais on peut aller plus loin avec la fonction abs !
Par exemple, il est possible d’override (surcharger) la fonction abs()
avec la méthode __abs__
.
Apprenons en plus sur les valeurs absolues et la fonction abs()
ensemble !
💡 Vous voulez en apprendre plus sur les fonctions comme
abs()
? J’ai écrit un article qui reprend toutes les fonctions natives en Python.
Qu’est-ce qu’une valeur absolue ?
Une valeur absolue est un nombre sans tenir compte de son signe. On peut aussi le voir comme la distance qui le sépare de 0.
En maths, une valeur absolue est représentée entre deux barres verticales |
: |nombre|
.
En d’autres termes :
|nombre| == nombre
sinombre
est supérieur ou égal à0
|nombre| == -nombre
sinombre
est inférieur à0
Comment calculer la valeur absolue en Python ?
On peut calculer la valeur absolue d’un nombre entier ou à virgule en Python avec la fonction abs()
.
- Calculer la valeur absolue d’un nombre à virgule flottante :
print(abs(-42.42))
La fonction abs renvoie la valeur de nombre flottant sans son signe :
42.42
- Calculer la valeur absolue d’un entier :
print(abs(42))
La fonction abs renvoie la valeur de nombre entier sans son signe :
42
Comment calculer la valeur absolue de nombres dans une liste ?
On peut utiliser la fonction abs()
sur une liste de nombres en bouclant dessus et en appliquant la fonction sur chacun d’eux.
nombres = [0, -3.14, 6, -9, 12.21, -15]
for nombre in nombres:
print(abs(nombre))
Notre boucle va afficher la valeur absolue de chaque nombre :
0
3.14
6
9
12.21
15
Comment utiliser la méthode __abs__
en Python ?
La méthode __abs__()
et la fonction abs()
sont interchangeables.
Quand on appelle la fonction abs()
, c’est en fait la méthode __abs__()
qui est appelée.
Donc quand on appelle abs(-42)
, c’est en fait la méthode -42.__abs__()
qui est exécutée.
Dans les deux cas le résultat est le même, la valeur 42
.
Mais alors vous vous demandez sûrement “pourquoi utiliser la méthode __abs__()
quand on peut utiliser la fonction abs()
” ?
La réponse est qu’on peut implémenter la méthode __abs__
pour lui faire faire autre chose.
class NombreString:
def __init__(self, value):
self.value = value
def __abs__(self):
valeur_absolue = self.value.replace("moins", "").strip()
return valeur_absolue
On pourra ensuite utiliser la fonction abs()
et son comportement sera celui qu’on a implémenté quand on a override la méthode __abs__
.
nombre_1 = NombreString("moins quarante-deux")
nombre_2 = NombreString("mille trois cent trente-sept")
print(abs(nombre_1))
print(abs(nombre_2))
Je m'appelle Thomas, et je code depuis plus de 20 ans. Depuis ma sortie de la première promotion de l'École 42, j'ai conçu et développé des centaines d'applications et de sites web. Sur ce blog, je partage avec vous les stratégies les plus efficaces pour maîtriser l'art de coder et progresser rapidement.