Article original : What Does // Mean in Python? Operators in Python

En Python, vous utilisez l'opérateur double barre // pour effectuer une division entière. Cet opérateur // divise le premier nombre par le second et arrondit le résultat à l'entier le plus proche (ou nombre entier).

Dans cet article, je vais vous montrer comment utiliser l'opérateur // et le comparer à la division régulière afin que vous puissiez voir comment il fonctionne.

Mais ce n'est pas tout, vous apprendrez également une méthode mathématique Python qui est synonyme de l'opérateur double barre //.

Ce que nous allons couvrir

La syntaxe de base de l'opérateur //

Pour utiliser l'opérateur double barre //, vous faites presque la même chose que pour une division régulière. La seule différence est qu'au lieu d'une seule barre /, vous utilisez une double barre // :

premierNombre // secondNombre

Exemples de division entière

Dans l'exemple ci-dessous, la division entière de 12 par 5 donne 2 :

num1 = 12
num2 = 5
num3 = num1 // num2

print("division entière de", num1, "par", num2, "=", num3)
# Sortie : division entière de 12 par 5 = 2

Alors que la division régulière de 12 par 5 serait égale à 2,4. C'est-à-dire 2 reste 4 :

num1 = 12
num2 = 5
num3 = num1 / num2

print("division normale de", num1, "par", num2, "=", num3)
# Sortie : division normale de 12 par 5 = 2.4

Cela vous montre que l'opérateur // arrondit le résultat de la division de deux nombres à l'entier le plus proche.

Même si la partie décimale est 9, l'opérateur // arrondirait toujours le résultat à l'entier le plus proche.

num1 = 29
num2 = 10
num3 = num1 / num2
num4 = num1 // num2

print("division normale de", num1, "par", num2, "=", num3)
print("mais division entière de", num1, "par", num2, "=", num4)

"""
Sortie :
division normale de 29 par 10 = 2.9
mais division entière de 29 par 10 = 2
"""

Et si vous effectuez une division entière avec un nombre négatif, le résultat serait toujours arrondi à l'entier inférieur.

Pour vous préparer à ce résultat, arrondir un nombre négatif signifie s'éloigner de 0. Donc, -12 divisé par 5 donne -3. Ne vous y trompez pas, même si à première vue il semble que le nombre devient "plus grand", il devient en réalité plus petit (plus éloigné de zéro/un nombre négatif plus grand).

num1 = -12
num2 = 5
num3 = num1 // num2

print("division entière de", num1, "par", num2, "=", num3)

# division entière de -12 par 5 = -3

L'opérateur double barre // fonctionne comme math.floor()

En Python, math.floor() arrondit un nombre à l'entier le plus proche, tout comme l'opérateur double barre //.

Ainsi, math.floor() est une alternative à l'opérateur // car ils font la même chose en coulisses.

Voici un exemple :

import math

num1 = 12
num2 = 5
num3 = num1 // num2
num4 = math.floor(num1 / num2)

print("division entière de", num1, "par", num2, "=", num3)
print("math.floor de", num1, "divisé par", num2, "=", num4)

"""
Sortie :
division entière de 12 par 5 = 2
math.floor de 12 divisé par 5 = 2
"""

Vous pouvez voir que math.floor() fait la même chose que l'opérateur //.

Comment l'opérateur double barre // fonctionne en coulisses

Lorsque vous utilisez l'opérateur // pour diviser deux nombres, la méthode appelée en coulisses est __floordiv__().

Vous pouvez également utiliser cette méthode __floordiv__() directement à la place de l'opérateur // :

num1 = 12
num2 = 5
num3 = num1 // num2
num4 = num1.__floordiv__(num2)

print("division entière de", num1, "par", num2, "=", num3)
print("utiliser la méthode floordiv nous donne la même valeur de", num4)

"""
Sortie :
division entière de 12 par 5 = 2
utiliser la méthode floordiv nous donne la même valeur de 2
"""

Conclusion

Dans cet article, vous avez appris comment utiliser l'opérateur double barre // et comment il fonctionne en coulisses.

De plus, vous avez appris deux alternatives à l'opérateur // : math.floor() et la méthode __floordiv__().

Ne soyez pas confus quant à celui à utiliser. Les trois façons d'effectuer une division entière fonctionnent de la même manière. Mais je vous conseille d'utiliser l'opérateur double barre // car vous avez moins à taper.

Merci d'avoir lu.