La fonction abs - calculer des valeur absolues en Python

Article publié le et mis à jour le .

La fonction native "abs" 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 si nombre est supérieur ou égal à 0
  • |nombre| == -nombre si nombre 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))

Comment override la méthode abs pour changer la fonction abs