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!