Problème d'interprétation dans un programme Python

Résolu
zane-4457 Messages postés 7 Statut Membre -  
zane-4457 Messages postés 7 Statut Membre -

Bonjour, 

(je suis débutant dans Python)

dans le programme suivant , l'utilisateur indique combien de temps a duré sa douche , le programme fait un calcul  et renvoie le résultat dans une phrase .

Problème : lorsque l'utilisateur tape 1.5 , le programme comprend une minute plus la moitié d'une autre minute , ce que je souhaite c'est que le programme comprenne par "1.5" une minute et cinquante secondes .

Merci et veuillez m'excuser si la réponse est évidente .

# 6 litres = 1 minute 
# 1 litre = 10 secondes 
# 1 litre = 0.1933 minute 




t1 = 0.166667
# t1 est le temps qu'il faut à la douche pour remplir 1 litre d'eau .

t2 = input("Combien de minutes a duré votre douche ?")
# t2 est le temps pendant lequel l'eau a coulé , la réponse donnée par l'utilisateur est au format string .

t3 = float(t2)
# On utilise t3 pour transformer la réponse donnée dans t2 ( qui est au format string ) en un nombre à virgule (float)  .

l1 = t3/t1
# l1 est le nombre de litres utilisés pendant la douche



l7 = round(l1, 2)

l6 = (str(l7))

print('Vous avez utilisé '+ l6 + " litres d'eau ")


Windows / Chrome 110.0.0.0

3 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    bonjour, un exemple:

    x=input("Combien de minutes a duré votre douche ?")
    m,p=x.split(".")
    s=int(p)*10
    mins=int(m)+s/60
    print (mins)
    1
  2. jee pee Messages postés 9437 Date d'inscription   Statut Modérateur Dernière intervention   9 973
     

    Bonjour,

    Le mieux serait de saisir un format plus explicite comme mm:ss 1:50, puis de découper les 2 membres, pour calculer un nombre de minutes avec des centièmes, on sait alors ce que l'on traite.

    Après tu peux convertir ton t3

    t3 = (t3-t3%1) + (t3%1 * 100/60)

    ainsi 1.15 mm.ss devient 1.25 en centième de minutes et tes calculs peuvent opérer

    par contre ton # 1 litre = 0.1933 minute en centième de minutes, n'est pas correct 0:10 # 1 litre = 0.166666 minute en centièmes


    0
    1. Utilisateur anonyme
       

      Salut jeepee,

      en effet le commentaire est incorrect, mais à la ligne 8, t1 est initialisée avec la bonne valeur.

      0
  3. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    Bonjour,

    Tu peux simplifier:

    t2 = input("Combien de minutes a duré votre douche ?")
    # t2 est le temps pendant lequel l'eau a coulé , la réponse donnée par l'utilisateur est au format string .
    
    t3 = float(t2)
    # On utilise t3 pour transformer la réponse donnée dans t2 ( qui est au format string ) en un nombre à virgule (float)  .
    

    comme ceci:

    t3 = float(input('Durée de ta douche ? : '))
    0
    1. zane-4457 Messages postés 7 Statut Membre
       

      Merci , c'est vrai que c'est mieux

      0