Python: comprobar si una cadena es numérica
El siguiente ejemplo crea una función personalizadais_number()Método para determinar si una cadena es un número:
Ejemplo (Python 3.0+)
# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.example.com
def is_number(s):
try:
float(s)
return True
except ValueError:
pass
try:
import unicodedata
unicodedata.numeric(s)
return True
except (TypeError, ValueError):
pass
return False
# Prueba de cadenas y números
print(is_number('foo')) # False
print(is_number('1')) # True
print(is_number('1.3')) # True
print(is_number('-1.37')) # True
print(is_number('1e3')) # True
# Prueba de Unicode
# Árabe 5
print(is_number('٥')) # True
# Tailandés 2
print(is_number('๒')) # True
# Números chinos
print(is_number('cuatro')) # True
# Símbolo de copyright
print(is_number('©')) # False
También podemos implementarlo usando una sentencia if anidada:
Al ejecutar el código anterior, el resultado es:
False True True True True True True True False
Más métodos
Python isdigit() El método comprueba si la cadena consta solo de dígitos.
Python isnumeric() El método comprueba si la cadena consta solo de dígitos. Este método es únicamente para objetos unicode.
Otras extensiones