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

Résolu/Fermé
zane-4457 Messages postés 7 Date d'inscription vendredi 10 février 2023 Statut Membre Dernière intervention 14 février 2023 - 11 févr. 2023 à 22:13
zane-4457 Messages postés 7 Date d'inscription vendredi 10 février 2023 Statut Membre Dernière intervention 14 février 2023 - 14 févr. 2023 à 18:27

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

A voir également:

3 réponses

yg_be Messages postés 22859 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 juin 2024 1 474
12 févr. 2023 à 12:10

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
jee pee Messages postés 39827 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 7 juin 2024 9 215
Modifié le 11 févr. 2023 à 23:32

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
Whismeril Messages postés 19049 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 5 juin 2024 913
12 févr. 2023 à 11:13

Salut jeepee,

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

0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 12 févr. 2023 à 11:43

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
zane-4457 Messages postés 7 Date d'inscription vendredi 10 février 2023 Statut Membre Dernière intervention 14 février 2023
14 févr. 2023 à 18:27

Merci , c'est vrai que c'est mieux

0