Maison >développement back-end >Tutoriel Python >Comment puis-je extraire efficacement des nombres à virgule flottante à partir de chaînes en Python ?
Comment extraire des nombres à virgule flottante de chaînes avec précision
Dans certains scénarios, l'extraction de nombres à virgule flottante de chaînes est nécessaire. Par exemple, vous pouvez rencontrer des chaînes telles que « Niveau actuel : 13,4 dB ». où seule la valeur numérique est intéressante. Les expressions régulières (RegEx) offrent une solution simple pour cette tâche.
Approche RegEx
Si vos nombres à virgule flottante apparaissent toujours sous la forme « a.b », vous pouvez utilisez le modèle RegEx suivant :
re.findall("\d+\.\d+", "Current Level: 13.4db.")
Ce modèle capturera toute séquence numérique contenant un ou plusieurs chiffres, suivis d'un point décimal, puis d'un ou plusieurs chiffres. plus de chiffres. Dans notre exemple, il renverra la chaîne « 13.4 ».
RegEx avancé pour une extraction robuste
Pour une plus grande flexibilité, considérez le modèle suivant :
re.findall(r"[-+]?(?:\d*\.*\d+)", "Current Level: -13.2db or 14.2 or 3")
Ce modèle gère une plus large gamme de représentations à virgule flottante, y compris :
Il renverra une liste de tous les nombres correspondants : ['-13.2', '14.2', '3'].
Conversion directe pour validation
Vous pouvez également convertir directement un jeton en flottant pour valider la saisie de l'utilisateur :
user_input = "Current Level: 1e100 db" for token in user_input.split(): try: print(float(token), "is a float") except ValueError: print(token, "is something else")
Ce code tente de convertir chaque jeton de la chaîne d'entrée en flottant et indique si le jeton est un flottant valide ou non.
En tirant parti de la méthode appropriée à vos besoins spécifiques, vous pouvez extraire efficacement des nombres à virgule flottante à partir de chaînes avec la précision et la flexibilité souhaitées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!