Comment vérifier qu'une chaîne de caractères contient un nombre en Python

  1. Fonction Python any avec str.isdigit pour vérifier si une chaîne contient un nombre
  2. re.search(r'\d') pour vérifier si une chaîne de caractères contient un nombre

Cet article présente la manière de vérifier si une chaîne Python contient un nombre ou non.

La fonction Python intégrée any function avec str.isdigit renverra True si la chaîne donnée contient un nombre, sinon elle renverra False.

La méthode de recherche par expression régulière en Python avec le motif r'\d' pourrait aussi retourner True si la chaîne donnée contient un nombre.

Fonction Python any avec str.isdigit pour vérifier si une chaîne contient un nombre

Toute fonction renvoie “Vrai” si un élément de l’alphabet donné est “Vrai”, sinon, elle renvoie False.

La fonction str.isdigit() renvoie True si tous les caractères de la chaîne donnée sont des chiffres, False sinon.

any(chr.isdigit() for chr in stringExample)

Si stringExample contient au moins un nombre, alors le code ci-dessus renvoie True parce que chr.isdigit() for chr in stringExample a au moins un True dans le iterable.

Exemple de travail

str1 = "python1"
str2 = "nonumber"
str3 = "12345"

print(any(chr.isdigit() for chr in str1))
print(any(chr.isdigit() for chr in str2))
print(any(chr.isdigit() for chr in str3))

Production:

True
False
True

Fonction map()

Python map(function, iterable) fuction applique la fonction à chaque élément de l’“iterable” donné et retourne un itérateur qui donne le résultat ci-dessus.

Par conséquent, nous pourrions réécrire la solution ci-dessus pour,

any(map(str.isdigit, stringExample))

Exemple de travail

str1 = "python1"
str2 = "nonumber"
str3 = "12345"

print(any(map(str.isdigit, str1)))
print(any(map(str.isdigit, str2)))
print(any(map(str.isdigit, str3)))

Production:

True
False
True

re.search(r'\d') pour vérifier si une chaîne de caractères contient un nombre

re.search(r'\d', string) pattern scanne la chaîne et renvoie l’objet correspondant au premier emplacement qui correspond au motif donné - d cela signifie tout nombre entre 0 et 9 et renvoie None si aucune correspondance n’est trouvée.

import re

print(re.search(r'\d', "python3.8"))
#output: <re.Match object; span=(6, 7), match='3'>

L’objet de correspondance contient le double “span” qui indique la position de début et de fin de la “correspondance”, ainsi que le contenu correspondant, comme “correspondance = ‘3”.

La fonction bool() peut faire passer le résultat de re.search de match object ou None à True ou False.

**Exemple de travail

import re

str1 = "python12"
str2 = "nonumber"
str3 = "12345"

print(bool(re.search(r'\d', str1)))
print(bool(re.search(r'\d', str2)))
print(bool(re.search(r'\d', str3)))

Production:

True
False
True

Article connexe - Python String

  • Comment convertir une chaîne de caractères en Float ou Int en Python
  • Comment vérifier si une chaîne de caractères contient une sous-chaîne en Python