Python >> Tutoriel Python >  >> Python

Module Python


Quand j'étudiais l'informatique, les professeurs nous poussaient à apprendre la théorie derrière les opérations modulo et les classes résiduelles. Mais beaucoup d'entre nous manquaient de motivation. Nous ne voyions pas pourquoi le calcul du reste de la division, c'est-à-dire modulo, est un concept si important.

Pourtant, de nombreux projets de code pratiques plus tard, j'ai acquis l'expérience que le modulo joue un rôle dans la plupart d'entre eux. Modulo n'est pas facultatif , c'est un outil essentiel dans la boîte à outils d'un codeur expert !

Opérateur Modulo Python

En Python comme dans de nombreux autres langages de programmation, l'opérateur modulo est représenté par le pourcentage % symbole. Il renvoie le reste de la division de l'opérande gauche par l'opérande droit. Par exemple, l'opération modulo 7%2 renvoie 1 parce que sept divisé par deux est trois avec reste 1 .

La figure montre comment l'opérateur modulo fonctionne en Python pour l'exemple 7%3 .

  • Il y a un ensemble avec sept éléments. C'est le dividende de l'opération.
  • Le diviseur est 3. Vous divisez l'ensemble de sept éléments en paquets de trois éléments.
  • Le reste est 1. Lors de la division de l'ensemble de sept éléments en paquets de trois éléments, il en reste un. C'est le résultat de l'opération modulo.

Voici quelques exemples :

Division Division Sans Reste / Division Entier Reste / MODULO
7/2 == 3.5 7//2 == 3 7%2 == 1
8/2 == 4.0 8//2 == 4 8%2 == 0
10/3 == 3.33 10//3 == 3 10%3 == 1
14/5 == 2.8 14//5 == 2 14%5 == 4

Le tableau montre le résultat de l'application de trois opérateurs différents à deux opérandes :

  • L'opérateur de division / qui divise l'opérande gauche par l'opérande droit et renvoie une valeur flottante relativement précise.
  • La division entière opérateur // qui divise l'opérande gauche par l'opérande droit et renvoie la valeur entière absolue (arrondie à l'inférieur).
  • L'opérateur modulo % qui divise l'opérande gauche par l'opérande droit en utilisant la division entière et renvoie le reste de la division entière.

Boucle for modulo Python

Supposons que votre code comporte une boucle principale et que vous souhaitiez exécuter une fonction de surveillance à chaque millième itération i . Modulo est votre ami ici :cochez simplement i%1000==0 .

for i in range(10**4):
    if i%1000 == 0:
        print(i)

Les résultats sont tous des multiples de 1 000, qui sont divisibles sans reste :

0
1000
2000
3000
4000
5000
6000
7000
8000
9000

Apprendre ces petits modèles de code est la clé pour devenir un excellent codeur. Vous devez les connaître par cœur, sans trop réfléchir. Cela libère votre énergie mentale et vous permet de vous concentrer sur la situation dans son ensemble. Vous produirez un code meilleur et plus significatif.

Python Modulo Entier et Flottant

L'opérateur % modulo est utilisé pour la division du reste sur des entiers . Mais en Python, vous pouvez également l'appliquer à virgule flottante Nombres. Tout d'abord, il convertit les arguments numériques en un type commun, soit float soit int. Deuxièmement, il donne le reste de la division du premier argument par le second.

Il existe trois cas d'utilisation d'entiers et de flottants dans un calcul modulo :

  1. Deux entiers
  2. Un entier et un flottant
  3. Deux flotteurs

Tout d'abord, calculez le modulo de deux entiers :

>>> 5%3
2

Deuxièmement, calculez le modulo d'un entier et d'un flottant :

>>> 5.5%3
2.5

Troisièmement, calculez le modulo de deux flottants :

>>> 5.5%3.2
2.3

Dans chaque cas, il divise le premier opérande par le second et renvoie le reste de la division.

Instruction Python Modulo If

Une utilisation fréquente de l'opérateur modulo est dans une condition if :

# If Statement + For Loop with Modulo
i = 1
for i in range(15):
   if i%5 == 0:
     print(i)

Notez que le modulo % l'opérateur a priorité sur le == opérateur.

Exercice  :Devinez :quel est le résultat de cet extrait de code ? Vous pouvez le vérifier dans le shell de code interactif :

Nombres négatifs modulo Python

Pouvez-vous utiliser l'opérateur modulo % sur les nombres négatifs ? La réponse est oui! Contrairement à C ou C++, l'opérateur modulo de Python % renvoie toujours un nombre avec le même signe que le diviseur. Par exemple, -9%2 renvoie 1 car le diviseur est positif, 9%-2 renvoie -1 car le diviseur est négatif et -9%-2 renvoie -1 car le diviseur est également négatif. Il n'y a pas "d'annulation" de deux négatifs.

Voici les deux exemples :

print(-9%2)
print(9%-2)
print(-9%-2)

La sortie a le même signe que le diviseur 2 et -2 :

1
-1
-1

Vous pouvez trouver la raison du signe du résultat modulo sur Wikipedia :

Cependant, cela laisse toujours une ambiguïté de signe si le reste est non nul :deux choix possibles pour le reste se produisent, l'un négatif et l'autre positif, et deux choix possibles pour le quotient se produisent. En théorie des nombres, le reste positif est toujours choisi, mais en informatique, les langages de programmation choisissent en fonction du langage et des signes de a ou n. Standard Pascal et ALGOL 68, par exemple, donnent un reste positif (ou 0) même pour les diviseurs négatifs, et certains langages de programmation, tels que C90, laissent le soin à l'implémentation lorsque n ou a est négatif (voir le tableau sous § Dans les langages de programmation pour plus de détails). un modulo 0 n'est pas défini dans la plupart des systèmes, bien que certains le définissent comme a.

Chaîne modulo Python

L'opérateur modulo % est surchargé par la classe de chaîne où il signifie "formatage de chaîne" plutôt que "calcul de rappel" . De nombreux codeurs appellent cela un "opérateur modulo de chaîne" — et il est disponible à partir de Python 3.x.

name = "FINXTERS!"
print('Hello %s' % name)
# Hello FINXTERS!

Vous pouvez tout apprendre sur le formatage des chaînes dans notre guide détaillé.

Casse-tête Modulo Python

Pouvez-vous résoudre ce casse-tête Python sur l'opérateur modulo ?

x = 51 % 3
print(x)


Vous pouvez vérifier si vous l'avez correctement compris sur l'application Finxter. Êtes-vous un codeur maître?
Testez vos compétences maintenant !

Vidéo associée

Opérateurs arithmétiques

Les opérateurs arithmétiques sont des raccourcis syntaxiques pour effectuer des opérations mathématiques de base sur les nombres.

Opérateur Nom Description Exemple
+ Ajout Calcul de la somme des deux opérandes 3 + 4 == 7
-- Soustraction Soustraction du deuxième opérande au premier opérande 4 - 3 == 1
* Multiplication Multiplier le premier par le second opérande 3 * 4 == 12
/ Division Diviser le premier par le second opérande 3 / 4 == 0.75
% Modulo Calcul du reste lors de la division du premier par le deuxième opérande 7 % 4 == 3
// Division entière, Division étage Diviser le premier opérande par le deuxième opérande et arrondir le résultat à l'entier inférieur 8 // 3 == 2
** Exposant Élever le premier opérande à la puissance du second opérande 2 ** 3 == 8

Post précédent