Maison >développement back-end >Tutoriel Python >Comment puis-je extraire efficacement des nombres à virgule flottante à partir de chaînes en Python ?

Comment puis-je extraire efficacement des nombres à virgule flottante à partir de chaînes en Python ?

DDD
DDDoriginal
2024-11-25 10:00:15952parcourir

How Can I Efficiently Extract Floating-Point Numbers from Strings in 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 :

  • Signes négatifs (-)
  • Nombres entiers (par exemple, "3")
  • Nombres sans virgule (par exemple, "13")

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn