Maison >développement back-end >Tutoriel Python >Comment vérifier la divisibilité en Python sans les pièges de la division ?

Comment vérifier la divisibilité en Python sans les pièges de la division ?

DDD
DDDoriginal
2024-11-03 04:03:30580parcourir

How to Check Divisibility in Python Without the Division Pitfalls?

Vérification de la divisibilité en Python : une perspective différente

Face à la tâche de déterminer si un nombre est divisible par un autre, de nombreux développeurs instinctivement recourir à la division et vérifier le reste. Cependant, cette approche peut conduire à des pièges, en particulier dans le contexte de l'interprétation variée de la division par Python.

Dans Python 2.x, le comportement par défaut est la division entière, qui ignore le reste. Cela signifie que les opérateurs de division donneront toujours un entier, quelle que soit la présence d'un reste non nul. Par conséquent, utiliser isinstance pour tester un entier ne fournit pas de discrimination significative.

Dans Python 3.x, en revanche, la division utilise par défaut des opérations à virgule flottante, produisant des valeurs à virgule flottante même pour nombres entiers. Par conséquent, la vérification isinstance échouera même lorsque le nombre est divisible au sens mathématique.

Une meilleure voie : l'opérateur de module à la rescousse

Une approche plus efficace est pour utiliser l'opérateur de module, %. L'expression n % k == 0 renvoie True si et seulement si n est également divisible par k. Cette méthode aborde directement le critère de divisibilité sans les ambiguïtés associées à la division.

Exemple de solution

Armés de ces connaissances, modifions votre code pour tester correctement la divisibilité :

<code class="python">n = 0
s = 0

while n < 1001:
    if (n % 3 == 0) or (n % 5 == 0):
        s += n

    n += 1</code>

Cette solution utilise l'opérateur de module pour vérifier la divisibilité par 3 et par 5, filtrant efficacement les nombres qui remplissent l'une ou l'autre des conditions. Le résultat est une solution plus précise et robuste à votre problème d'origine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn