Manipulation des fichiers précisément Enregistrement des variables diverses

Je souhaite écrire un programme qui permet enregistrer les données (nombre à virgules flottantes) dans un fichier pour pouvoir les extraire par la suite par une fonction.
J’utilises le module pickle pour le moment car je suis en phase d’apprentissage !
Je rencontre un véritable problème quand il s’agit de convertir le message en float quand l’utilisateur saisi ces nombres. Je mets le code et l’erreur affiché ci dessous:

1- Le code:

nom_du_fichier = input("Entrez le nom du fichier: ")
name_file = open(nom_du_fichier, 'wb')
nouv = 0.0
while 1:
    txt = float(input())
    nouv = nouv + txt
    if txt=="":
        break
    pickle.dump(nouv, name_file)
print("Bien enregistré")
name_file.close()

2- le message d’erreur:

Traceback (most recent call last):
  File "C:\Users\JOEL\PycharmProjects\manipuation_fichiers\.venv\Scripts\write_file_all_type.py", line 25, in <module>
    txt = float(input())
          ^^^^^^^^^^^^^^
ValueError: could not convert string to float: ''

édition du message précédent pour utilisation du bon formatage ((Texte préformaté)

Tu as une condition pour vérifier si txt est une chaîne vide, mais cette condition n’intervient qu’après que tu aies converti l’entrée en float et l’aies ajouté à nouv.
Donc dans le cas où l’entrée est vide, la conversion échoue.

Pour que ton programme fonctionne il faudrait que tu :

  • Lises l’entrée via input() comme tu le fais et la stocker dans une variable mais sans la convertir
  • Comparer cette entrée avec une chaîne vide pour sortir de la boucle (break) le cas échéant
  • Convertir l’entrée en flottant et l’ajouter à nouv sinon
2 « J'aime »

Merci énormément. Je n’avais pas fait attention à cette subtilité et maintenant ça marche.