Conversion en secondes

Exercice tiré de Progalgo de Julien de Villèle.

Exercice

Compléter la fonction secondes ci-dessous pour qu'elle convertisse en secondes un triplet (heure h, minutes m, secondes s). On donne : * des préconditions que doivent vérifier les valeurs de h, m et s * un jeu de tests unitaires : des postconditions sur les valeurs renvoyées par la fonction dans certains cas.

def secondes(h,m,s): 
    """Signature secondes(h:float,m:float,s:float)->float"""  
    #préconditions
    assert h >= 0 and m >= 0 and s >= 0            
    return "à compléter"

assert secondes(1,1,1) == 3661
assert secondes(1,0,1) == 3601
benchmark = ['secondes(1,1,1)== 3661', backslash_newline'secondes(1,0,1) == 3601', backslash_newline'secondes(0,0,1) == 1',backslash_newline'secondes(0,1,0) == 60',backslash_newline'secondes(1,1,0) == 3660',backslash_newline'secondes(1,2,3) == 3723']backslash_newlinebackslash_newline5/5

def secondes(h,m,s): backslash_newline """Signature secondes(h:float,m:float,s:float)->float""" backslash_newline #préconditionsbackslash_newline assert h >= 0 and m >= 0 and s >= 0 backslash_newline return "à compléter"backslash_newlinebackslash_newlineassert secondes(1,1,1) == 3661backslash_newlineassert secondes(1,0,1) == 3601backslash_newlinebackslash_newline# Solution 1backslash_newlinebackslash_newlinedef secondes(h,m,s): backslash_newline """Signature secondes(h:float,m:float,s:float)->float""" backslash_newline #préconditionsbackslash_newline assert h >= 0 and m >= 0 and s >= 0 backslash_newline return h * 3600 + m * 60 + s backslash_newlinebackslash_newline