Forcer un utilisateur à rentrer des floats dans les inputs

Résolu/Fermé
Vrops Messages postés 46 Date d'inscription mercredi 11 janvier 2017 Statut Membre Dernière intervention 19 janvier 2021 - 19 janv. 2021 à 22:48
Vrops Messages postés 46 Date d'inscription mercredi 11 janvier 2017 Statut Membre Dernière intervention 19 janvier 2021 - 19 janv. 2021 à 23:39
Bonjour a tous,

Je viens vers vous aujourd'hui après avoir écumer les forum mais je dois louper quelque chose.

J'aimerai forcer les utilisateurs à rentrer des floats dans les inputs et les faires recommencer tant que ce n'est pas un float

saisie = input("Prix du bidon de 5 litres de produit en euros:") #Saisie du prix du bidon de 5 litres

pcinql = float(saisie)

saisie2 = input("Pourcentage de produit a diluer dans 100 L d'eau: ") #Saisie du pourcentage

pourcentage = float(saisie2)

pec = 500 / pourcentage #Produit en croix

final = pcinql / pec # Prix du bidon / Résultat du produit en croix = Prix au litre

final2 = final *10 # Multiplier par 10 pour avoir 10 litres

print("Le prix pour 10 litres de la solution finale est de", final2,"euros.") #Afficher le prix pour 10 litres de solution finale


Pouvez-vous m'aider ? Merci à vous

4 réponses

jee pee Messages postés 40565 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 décembre 2024 9 459
Modifié le 19 janv. 2021 à 23:05
Bonjour,

Je m'étais fait 2 petites fonctions pour vérifier des input integer et float et boucler sur anomalie, en utilisant 2 façons de faire différentes. Si cela peut t'aider

def input_int(lib):
    saisie=''
    while (not saisie.isdigit()):
       saisie = input (lib)
    return (int(saisie))
def input_float(lib):
   while True:
      saisie = input (lib)
      try:
         return (float(saisie))
      except ValueError:
          pass
annee = input_int ("Année ")
montant = input_float ("Montant ")
print(annee, montant)
 


1
Vrops Messages postés 46 Date d'inscription mercredi 11 janvier 2017 Statut Membre Dernière intervention 19 janvier 2021 43
19 janv. 2021 à 23:04
C'est super merci !

N'étant absolument pas développeur (Je dépanne un proche) tu pourrais me montrer comment adapter ton bout de code sur cet input par exemple
saisie2 = input("Pourcentage de produit a diluer dans 100 L d'eau: ") #Saisie du pourcentage

pourcentage = float(saisie2)


Encore merci à toi.
0
jee pee Messages postés 40565 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 décembre 2024 9 459
19 janv. 2021 à 23:15
Généralement quand on dépanne on en sait un peu plus que le dépanné ;-)

pourcentage = input_float("Pourcentage de produit a diluer dans 100 L d'eau: ") #Saisie du pourcentage
0
Vrops Messages postés 46 Date d'inscription mercredi 11 janvier 2017 Statut Membre Dernière intervention 19 janvier 2021 43
19 janv. 2021 à 23:28
Il me dit que input _float n'est pas défini mais ce n'est pas grave.

C'est exact mais pour certaines personnes étrangères au monde de l'informatique un SysAdmin linux, un Pentester, un Dev python ou le gars qui remet le micro-onde a l'heure est la même entité. X)

Merci encore :-)
0
jee pee Messages postés 40565 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 décembre 2024 9 459
Modifié le 19 janv. 2021 à 23:30
il faut bien sur que tu rajoutes la fonction def input_float de mon exemple dans ton source.
0
Vrops Messages postés 46 Date d'inscription mercredi 11 janvier 2017 Statut Membre Dernière intervention 19 janvier 2021 43
Modifié le 19 janv. 2021 à 23:55
Arf j'avais oublier de la mettre puis j'ai pris un bout de la fonction int par la suite...

Ça marche super, merci encore pour tout :)
0