Division d'entiers

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 / 4 devient 7.0 / 4.0, ce qui donne 1.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 // 4 donne 1 car 4 est contenu une fois dans 7, avec un reste de 3. L'opérateur modulo (modulo operator) (%) calcule le reste. Ex. : 7 % 4 donne 3.

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 ».

Faites le point

Quotient et reste

Concepts en pratique

Division et modulo

Quelle est la valeur de chaque expression ?

1.
13 / 5
  1. 2
  2. 2.6
  3. 3
2.
13 % 5
  1. 2
  2. 2.6
  3. 3
3.
1 // 4
  1. 0
  2. 0.25
  3. 1
4.
2 % 0
  1. 0
  2. 2
  3. Error

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.

Faites le point

Argent et temps

Concepts en pratique

Conversions d'unités

5.
Quel est le modulo pour convertir des minutes en heures ?
  1. 40
  2. 60
  3. 280
6.
Un programme contient la ligne pounds = ounces // 16. Quelle est probablement la ligne de code suivante ?
  1. ounces = ounces % 16
  2. pounds = ounces % 16
  3. ounces = ounces - pounds * 16

À 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.