On dit que \(a\) est un multiple de \(b\) s'il existe un autre entier \(k\) tel que \(a =k \times b\).
On demande d'écrire une fonction est_multiple qui :
prend en paramètres deux entiers strictement positifs a et b ;
renvoie True si le premier est un multiple du second, False dans le cas contraire.
Python propose une solution native détaillée ci-dessous pour répondre à cette question.
Solution native
Il suffit en effet de vérifier que le reste de la division euclidienne de \(a\) par \(b\) vaut \(0\).
L'expression Python renvoyant le reste de la division de a par b est a%b.
Une solution native serait donc :
🐍 Script Python
defest_multiple(a,b):returna%b==0
Cette solution ne permet toutefois pas de répondre au cas \(b = 0\) (il est impossible de diviser par \(0\)).
On propose de raisonner différemment. Pour ce faire, on gère immédiatement le cas \(b = 0\) en observant que le seul multiple de \(b = 0\) est \(a = 0\). Ce cas particulier étant traité :
on crée une variable multiple prenant initialement la valeur 0 ;
tant que multiple est strictement inférieur à a, on ajoute b à la valeur de multiple ;
en fin de boucle on teste l'égalité de multiple et a : s'ils sont égaux, a est un multiple de b. Sinon, a n'est pas un multiple de b.
Le mot clé assert est utilisé en Python afin de vérifier que des propositions sont vraies.
Ainsi, l'instruction assert3+5*7==38 permet de vérifier que l'expression 3+5*7 est bien évaluée à 38.
Si c'est le cas, le programme continue de se dérouler normalement. Dans le cas contraire, le programme est interrompu et une erreur est signalée.
La vidéo ne s'affiche pas... ?
Il peut arriver que les vidéos ne s'affichent pas sur des navigateurs basés sur Chrome, ou si un ad-blocker est activé sur le navaigateur. Essayer avec un autre navigateur si vous êtes dans ce cas (FireFox, typiquement), ou désactivez l'ad-blocker.
###(Dés-)Active le code après la ligne # Tests (insensible à la casse) (Ctrl+I)
Entrer ou sortir du mode "deux colonnes" (Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran" (Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)