Cómo comprobar que una cadena contiene un número en Python
-
La función
any
de Python constr.isdigit
para comprobar si una cadena contiene un número -
map()
Función -
re.search(r'\d')
para comprobar si una cadena contiene un número
Este artículo introduce cómo comprobar si una cadena de Python contiene un número o no.
La función incorporada de Python función any
junto con str.isdigit
devolverá True
si la cadena dada contiene un número en ella, de lo contrario, devolverá False
.
El método de búsqueda de expresiones regulares de Python con el patrón r'\d'
también podría devolver True
si la cadena dada contiene un número.
La función any
de Python con str.isdigit
para comprobar si una cadena contiene un número
Cualquier función devuelve True
si cualquier elemento del iterable
dado es True
, de lo contrario, devuelve False
.
str.isdigit()
devuelve True
si todos los caracteres de la cadena dada son dígitos, False
en caso contrario.
any(chr.isdigit() for chr in stringExample)
Si stringExample
contiene al menos un número, entonces el código anterior devuelve True
porque chr.isdigit() for chr in stringExample
tiene al menos un True
en el iterable
.
Ejemplo de trabajo
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))
Producción :
True
False
True
map()
Función
Python map(function, iterable)
función aplica function
a cada elemento del iterable
dado y devuelve un iterador que produce el resultado anterior.
Por lo tanto, podríamos reescribir la solución anterior a,
any(map(str.isdigit, stringExample))
Ejemplo de trabajo
str1 = "python1"
str2 = "nonumber"
str3 = "12345"
print(any(map(str.isdigit, str1)))
print(any(map(str.isdigit, str2)))
print(any(map(str.isdigit, str3)))
Producción :
True
False
True
re.search(r'\d')
para comprobar si una cadena contiene un número
re.search(r'\d', string)
patrón escanea la secuencia
y devuelve el objeto coincidente para la primera ubicación que coincida con el patrón dado - \d
eso significa cualquier número entre 0 y 9 y devuelve None
si no se encuentra ninguna coincidencia.
import re
print(re.search(r"\d", "python3.8"))
# output: <re.Match object; span=(6, 7), match='3'>
El objeto coincidente contiene el doble span
que indica la posición inicial y final de la match
, y también el contenido coincidente como match = '3'
.
La función bool()
podría llevar el resultado de la re.search
desde match object
o None
a True
o False
.
Ejemplo de trabajo
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)))
Producción :
True
False
True
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook