Maison >développement back-end >Tutoriel Python >Comment puis-je détecter la présence de nombres dans une chaîne ?
Identification de caractères numériques dans des chaînes
De nombreux problèmes de programmation se concentrent sur la détection de lettres dans des chaînes numériques. Cependant, cette requête recherche une solution qui identifie les nombres dans des chaînes censées être infinies. L'objectif est d'empêcher l'acceptation de chaînes contenant des chiffres, telles que "Je possède 1 chien".
La fonction isdigit(), couramment utilisée à cet effet, ne renvoie True que si tous les caractères d'une chaîne sont des nombres. Au lieu de cela, nous avons besoin d'une méthode qui vérifie la présence de chiffres dans une chaîne.
Solution utilisant l'itération de chaîne
Une approche consiste à parcourir chaque caractère de l'entrée chaîne et vérifier s’il s’agit d’un nombre. Ceci peut être réalisé en utilisant la fonction any() avec la méthode isdigit().
def has_numbers(inputString): return any(char.isdigit() for char in inputString)
Exemple :
has_numbers("I own 1 dog") # True has_numbers("I own no dog") # False
Solution utilisant Regular Expressions
Une solution plus concise peut être implémentée à l'aide d'expressions régulières. L'extrait de code suivant utilise la fonction re.search() pour rechercher n'importe quel chiffre dans une chaîne.
import re def has_numbers(inputString): return bool(re.search(r"\d", inputString))
Exemple :
has_numbers("I own 1 dog") # True has_numbers("I own no dog") # False
Les deux solutions sont efficaces déterminez si une chaîne contient des nombres, ce qui vous permet de rejeter les chaînes qui violent l'objectif visé d'être sans nombre.
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!