problème programmation Python

problème programmation Python - Python - Programmation

Marsh Posté le 16-09-2013 à 18:54:51    

Bonjour à tous,
 
je suis novice en programmation Python (et en programmation tout court) et je sollicite votre aide afin d'arriver à écrire un programme Python permettant de calculer le temps écoulé entre deux horaires saisis au clavier par l'utilisateur ; les horaires seront saisis au format (heures, minutes, secondes) et le résultat sera affiché en secondes et au format (heures, minutes, secondes).
 
J'aimerais votre avis sur une stratégie (TRES SIMPLE) pour programmer ceci.
 
Sur  Python 2.7
 
merci d'avance

Reply

Marsh Posté le 16-09-2013 à 18:54:51   

Reply

Marsh Posté le 16-09-2013 à 19:24:33    

Oui, quelle est la stratégie très simple sur laquelle tu voudrais des avis?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-09-2013 à 19:31:58    

J'aimerais que l'on me donne des idées :)
 
sinon j'ai pensé à ceci :
 
a = input("heures,minutes,secondes" )
b = input("heures',minutes',secondes'" )
 
puis définir heures,minutes,secondes comme des nombres entiers
 
puis créer une variable c = a-b mais des problèmes surgissent assez vite à cette option ...

Reply

Marsh Posté le 16-09-2013 à 19:45:54    

sakojim a écrit :

J'aimerais que l'on me donne des idées :)


Ça c'est pas une option, les règles l'interdisent. On peut faire de la revue de code, on peut examiner et critiquer les idées que tu proposes, mais on ne peut pas faire ton boulot pour toi.

sakojim a écrit :

sinon j'ai pensé à ceci :

 

a = input("heures,minutes,secondes" )
b = input("heures',minutes',secondes'" )


Tu es sous Python 2 ou Python 3? Parce que sous Python 2 il faut utiliser raw_input

sakojim a écrit :

puis définir heures,minutes,secondes comme des nombres entiers


C'est à dire?

sakojim a écrit :

puis créer une variable c = a-b mais des problèmes surgissent assez vite à cette option ...


Tu as pensé à regarder dans la librairie standard s'il y a des trucs pour manipuler des temps ou des dates? C'est généralement un bon départ.


Message édité par masklinn le 16-09-2013 à 19:46:32

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-09-2013 à 19:54:29    

je corrige : je suis sur Python 3.3 et non 2.7
 
concrètement, après cette étape :  
a = input("heures,minutes,secondes" )  
b = input("heures',minutes',secondes'" )
 
je me retrouve avec a = (h,m,s) et b = (h',m',s')
mais je sais qu'il est impossible de faire une opération du genre : c=(h+h',m+m',s+s')
 
je suis dans l'incapacité d'avoir accès à la librairie standard
 
 

Reply

Marsh Posté le 16-09-2013 à 19:55:56    

sakojim a écrit :

je me retrouve avec a = (h,m,s) et b = (h',m',s')


J'en doute.

sakojim a écrit :

mais je sais qu'il est impossible de faire une opération du genre : c=(h+h',m+m',s+s')


Et donc?

sakojim a écrit :

je suis dans l'incapacité d'avoir accès à la librairie standard


Pardon?
 
 
 


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 17-09-2013 à 15:34:13    

Pour faire court, python permet d'éviter de réinventer la roue. Un module permet de faire des opérations sur des temps.

 
Code :
  1. >>> from datetime import timedelta as td
  2. >>> start = td(hours=15, minutes=25, seconds=0) # 15h25m0s
  3. >>> stop = td(hours=15, minutes=27, seconds=35) # 15h27m35s
  4. >>> stop-start # différence entre les deux temps
  5. datetime.timedelta(0, 155)
  6. >>> (stop-start).total_seconds() # valeur en secondes
  7. 155.0
 

Bonne continuation...


Message édité par fred1599 le 17-09-2013 à 15:43:00
Reply

Marsh Posté le 18-12-2013 à 21:27:35    

fred dit vrai, et même mieux, il existe des fonctions qui prennent une date entrée sous forme de chaîne pour la transformer en objet datetime.
faut voir dans les environs de strptime et tout le tintouin :
http://docs.python.org/2/library/d [...] e-behavior


---------------
Site de rencontre
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed