Ressources du Congo

#TutorielPython3 : Apprendre à coder en Python #24. Scripts divers : Séquence # 3. Élément de réponse #3

20 Mars 2019 , Rédigé par Zamba Synkin Publié dans #Dico exquis anti-mystification, #Tech' Net & Code, #e-Learning

Séquence #3 : Élément de réponse #3
Séquence #3 : Élément de réponse #3

 

 

 

 S O M M A I R E

  • Le module datetime 
    • La classe datetime.datetime
      • Les attributs year, month, day, hour, minute, second

Prérequis : tous les tutoriels précédents

Élément de réponse #3 (Niveau : 2de)

Pour rappel, il nous a été demandé ce qui suit :

3. Un automate de reprographie, placée dans la galerie d’un centre commercial de Paris 4e propose un tarif dégressif comme suit : Les 30 premières photocopies sont facturées 15 centimes l’unité et les suivantes 9 centimes l’unité.

a) Que paiera-t-on pour 25 photocopies ? Pour 45 ?

b) Ecrire un script en Python qui demande à chaque client le nombre de photocopies qu’il veut faire et affiche sur le ticket le prix qu’il devra payer en euro ().

Précision : ce ticket devra être daté et l’heure de l’opération indiquée en temps réel.

Le module datetime

D’après la Fondation Python Software, "le module datetime fournit des classes pour manipuler de façon simple ou plus complexe des dates et des heures. Bien que les calculs de date et d'heure sont gérés, l'implémentation est essentiellement tournée vers l'efficacité pour extraire des attributs pour les manipuler et les formater pour l'affichage."

 

Je reviendrai plus en détail sur ce module quand on va aborder la POO (programmation orientée objet). Mais, pour l'heure, pour le besoin de cet atelier, vous pouvez vous contenter de retenir simplement le fait que nous allons faire appel à la classe datetime.datetime, dont nous allons prendre les attributs suivants: année, mois, jour, heures, minutes, secondes. Dernière précision importante donnée par la même source : dans cette classe, on supposera qu'une journée est composée d'exactement "24*60*60 secondes (il n'y a pas ici de notion de "seconde bissextile").

 

Je vous propose de passer de ce pas au script. Après quoi, je vais l'exécuter. 

Scripts divers : Séquence # 3. Élément de réponse #3
Scripts divers : Séquence # 3. Élément de réponse #3

 

J'exécute le script, en saisissant tour à tour les nombres de copies demandées, 25, 45, pour voir ce que nous renverra la Console Python.

 

Pour  25 copies,  

 

 

 

 

 

 

 

 

    l'automate imprimera ce ticket : 

 

 

Et que va me réclamer l'automate pour 45 copies ?

Voyons le ticket qu'a imprimé l'automate.

Que remarquez-vous ? Eh bien, que le compte est bon. D'autant que la remise a été bien faite pour 15 (45-30) de copies. Du reste, la date et l'heure du jour sont bien indiquées sur le ticket !

Commentaires 

Lignes 16 & 17 :

print({:02d}/{:02d}/{:4d}."format(dateJour.day, dateJour.month, dateJour.year)) permet d'afficher les attributs de la classe datetime.datetime de manière élégante comme suit : 20/03/2019 au lieu de 20/3/2019.

Lignes 21 & 22 :

print({:2d}:{:02d}:{:02d}".format(dateJour.hour, dateJour.minute,  dateJour.second)) permet d'afficher, cette fois-ci, les attributs de la classe datetime.datetime, par exemple comme suit: 13:01:08 au lieu de 13:1:8. Ce sont deux nouvelles astuces pratiques que j'ai utilisées.

Lire la suite :  Scripts divers : Séquence # 3. Élément de réponse #4

Partager cet article

Commenter cet article