2.5 Division d'entiers
Objectifs d'apprentissage
À la fin de cette section, vous devriez être en mesure de :
- Évaluer des expressions impliquant la division entière et le modulo.
- Utiliser l'opérateur modulo pour convertir des unités de mesure.
Division et modulo
Python propose deux façons de diviser des nombres :
- La division classique (true division) (
/) convertit les nombres en flottants avant d'effectuer la division. Ex. :7 / 4devient7.0 / 4.0, ce qui donne1.75. - La division entière (floor division) (
//) calcule le quotient, c'est-à-dire le nombre de fois que le diviseur est contenu dans le dividende. Ex. :7 // 4donne1car 4 est contenu une fois dans 7, avec un reste de 3. L'opérateur modulo (modulo operator) (%) calcule le reste. Ex. :7 % 4donne3.
Remarque : L'opérateur % se prononce traditionnellement « mod » (abréviation de « modulo »). Ex. : En lisant 7 % 4 à voix haute, un programmeur dirait « sept mod quatre ».
Concepts en pratique
Division et modulo
Quelle est la valeur de chaque expression ?
Conversions d'unités
La division est utile pour convertir une unité de mesure en une autre. Pour convertir des centimètres en mètres, on divise une variable par 100. Ex. : 300 centimètres divisés par 100 donnent 3 mètres.
Les quantités ne se divisent souvent pas de manière exacte sous forme d'entiers. 193 centimètres équivalent à 1,93 mètre, soit 1 mètre et 93 centimètres. Un programme peut utiliser la division entière et le modulo pour séparer les unités :
- Le quotient, 1 mètre, est
193 // 100. - Le reste, 93 centimètres, est
193 % 100.
Les programmes utilisent souvent la division entière et le modulo ensemble. Si une ligne de code effectue une division entière par m, la ligne suivante appliquera très probablement le modulo par m. L'unité m par laquelle une quantité est divisée est appelée le modulo (modulus). Ex. : Lors de la conversion de centimètres en mètres, le modulo est 100.
Concepts en pratique
Conversions d'unités
À vous d'essayer
Heure d'arrivée
Avoir un appareil mobile peut être d'un grand secours lors de longs trajets en voiture. Des programmes comme Google Maps trouvent l'itinéraire le plus court et estiment l'heure d'arrivée. L'heure d'arrivée est basée sur l'heure actuelle plus la durée du trajet.
Écrivez un programme qui (1) demande en entrée l'heure actuelle et la durée estimée d'un trajet, (2) calcule l'heure d'arrivée, et (3) affiche les résultats en heures et minutes. Votre programme doit utiliser les invites suivantes (la saisie de l'utilisateur est en gras) :
13
Current minute (0-59)? 25
Trip time (in minutes)? 340
Current hour (0-23)? 13
Current minute (0-59)? 25
Trip time (in minutes)? 340
Dans cet exemple, l'heure actuelle est 13:25 (1:25 pm). La durée du trajet est de 340 minutes (5 heures et 40 minutes). 340 minutes après 13:25 donnent 19:05 (7:05 pm). Votre programme doit afficher le résultat sous ce format :
Arrival hour is 19
Arrival minute is 5
L'heure d'arrivée doit être comprise entre 0 et 23. Ex. : Ajouter 120 minutes à 23:00 doit donner 1:00, et non 25:00. La minute d'arrivée doit être comprise entre 0 et 59. Ex. : Ajouter 20 minutes à 8:55 doit donner 9:15, et non 8:75.
Conseil : Multipliez l'heure actuelle par 60 pour convertir les heures en minutes. Ensuite, calculez l'heure d'arrivée, en nombre total de minutes, sous la forme d'un entier.
Votre code ne doit pas utiliser de mots-clés Python issus des chapitres ultérieurs, tels que if ou while. La solution ne nécessite que l'addition, la multiplication, la division et le modulo.
À vous d'essayer
Machine à rendre la monnaie
Les caisses automatiques sont de plus en plus courantes dans les supermarchés. Les clients scannent eux-mêmes leurs articles, et un ordinateur détermine le montant total de l'achat. Les clients qui paient en espèces insèrent des billets, et une machine distribue automatiquement la monnaie en pièces.
C'est là que ce programme entre en jeu. Votre tâche consiste à calculer combien de pièces de chaque type distribuer. Votre programme doit utiliser les invites suivantes (la saisie de l'utilisateur est en gras) :
Total amount? 18.76
Cash payment? 20
Vous pouvez supposer que le montant payé en espèces sera toujours un nombre entier (représentant des billets d'un dollar) supérieur ou égal au montant total. Le programme doit calculer et afficher le montant de la monnaie à rendre ainsi que le nombre de dollars, de pièces de 25 cents (quarters), de 10 cents (dimes), de 5 cents (nickels) et de 1 cent (pennies) à distribuer :
Change Due $1.24
Dollars: 1
Quarters: 0
Dimes: 2
Nickels: 0
Pennies: 4
Conseil : Calculez la monnaie totale, en cents, sous la forme d'un entier. Utilisez la fonction round() pour éviter les erreurs de virgule flottante.
Votre code ne doit pas utiliser de mots-clés Python issus des chapitres ultérieurs, tels que if ou while. La solution ne nécessite que la soustraction, la multiplication, la division et le modulo.