Tenter la conversion avec float()
Dans cette étape, nous explorerons comment utiliser la fonction float()
pour convertir des chaînes de caractères en nombres à virgule flottante (floating-point numbers). Cela est utile lorsque vous avez besoin de travailler avec des nombres comportant des décimales ou représentés en notation scientifique.
La fonction float()
est une fonction intégrée (built-in) en Python qui tente de convertir son argument en un nombre à virgule flottante. Si l'argument est une chaîne de caractères, elle doit être une représentation valide d'un nombre à virgule flottante.
Modifions à nouveau notre script pour utiliser float()
et voir comment elle gère différentes chaînes de caractères :
-
Ouvrez le fichier numeric_strings.py
dans l'éditeur VS Code.
-
Modifiez le code pour inclure la fonction float()
et gérer les erreurs potentielles :
## Define some strings
string1 = "123"
string2 = "3.14"
string3 = "-42"
string4 = "0"
string5 = " 56 "
string6 = "abc"
string7 = "123.45.67"
string8 = "1e10"
## Try converting the strings to floats
strings = [string1, string2, string3, string4, string5, string6, string7, string8]
for s in strings:
try:
float_value = float(s)
print(f"String '{s}' can be converted to float: {float_value}")
except ValueError:
print(f"String '{s}' cannot be converted to float")
-
Enregistrez le fichier numeric_strings.py
.
-
Exécutez le script depuis le terminal :
python numeric_strings.py
Vous devriez voir la sortie suivante :
String '123' can be converted to float: 123.0
String '3.14' can be converted to float: 3.14
String '-42' can be converted to float: -42.0
String '0' can be converted to float: 0.0
String ' 56 ' can be converted to float: 56.0
String 'abc' cannot be converted to float
String '123.45.67' cannot be converted to float
String '1e10' can be converted to float: 10000000000.0
Comme vous pouvez le voir, float()
peut convertir avec succès les chaînes de caractères représentant des entiers, des nombres décimaux et des nombres en notation scientifique. Elle supprime également automatiquement les espaces blancs (whitespace) au début et à la fin de la chaîne (comme le montre string5
). Cependant, elle lève une erreur ValueError
si la chaîne ne peut pas être interprétée comme un nombre à virgule flottante valide (comme le montrent string6
et string7
).
L'utilisation de blocs try-except
nous permet de gérer ces erreurs potentielles de manière élégante et d'empêcher notre programme de planter. C'est une pratique courante et importante lorsque vous travaillez avec des entrées utilisateur ou des données provenant de sources externes.