una separar reemplazar por palabras palabra letras funcion eliminar contar comparar caracteres caracter cadenas cadena python string ascii

separar - reemplazar caracteres en python



Detectar si una cadena de Python es un nĂºmero o una letra (2)

Comprueba si la cadena es un dígito positivo (entero) y un alfabeto

Puede usar str.isdigit() y str.isalpha() para verificar si la cadena dada es un entero y un alfabeto positivos respectivamente.

Resultados de la muestra:

# For alphabet >>> ''A''.isdigit() False >>> ''A''.isalpha() True # For digit >>> ''1''.isdigit() True >>> ''1''.isalpha() False

Compruebe si las cadenas son positivas / negativas - entero / flotante

str.isdigit() devuelve False si la cadena es un número negativo o un número flotante. Por ejemplo:

# returns `False` for float >>> ''123.3''.isdigit() False # returns `False` for negative number >>> ''-123''.isdigit() False

Si también desea verificar los enteros negativos y la float , puede escribir una función personalizada para verificarlo como:

def is_number(n): try: float(n) # Type-casting the string to `float`. # If string is not a valid `float`, # it''ll raise `ValueError` exception except ValueError: return False return True

Ejecución de la muestra:

>>> is_number(''123'') # positive integer number True >>> is_number(''123.4'') # positive float number True >>> is_number(''-123'') # negative integer number True >>> is_number(''-123.4'') # negative `float` number True >>> is_number(''abc'') # `False` for "some random" string False

Deseche las cadenas "NaN" (no un número) mientras verifica el número

Las funciones anteriores devolverán True para la cadena "NAN" (no es un número) porque para Python es un valor flotante válido que representa que no es un número. Por ejemplo:

>>> is_number(''NaN'') True

Para verificar si el número es "NaN", puede usar math.isnan() como:

>>> import math >>> nan_num = float(''nan'') >>> math.isnan(nan_num) True

O si no desea importar una biblioteca adicional para verificar esto, simplemente puede verificarlo comparándolo con él mismo utilizando == . Python devuelve False cuando se compara nan float consigo mismo. Por ejemplo:

# `nan_num` variable is taken from above example >>> nan_num == nan_num False

Por lo tanto, la función anterior es is_number puede actualizarse para devolver False para "NaN" como:

def is_number(n): is_number = True try: num = float(n) # check for "nan" floats is_number = num == num # or use `math.isnan(num)` except ValueError: is_number = False return is_number

Ejecución de la muestra:

>>> is_number(''Nan'') # not a number "Nan" string False >>> is_number(''nan'') # not a number string "nan" with all lower cased False >>> is_number(''123'') # positive integer True >>> is_number(''-123'') # negative integer True >>> is_number(''-1.12'') # negative `float` True >>> is_number(''abc'') # "some random" string False

Permitir que el número complejo como "1 + 2j" sea tratado como un número válido

La función anterior todavía le devolverá False para los números complejos . Si desea que su función is_number trate los números complejos como números válidos , debe escribir la cadena pasada a complex() lugar de float . Entonces su función is_number se verá así:

def is_number(n): is_number = True try: # v type-casting the number here as `complex`, instead of `float` num = complex(n) is_number = num == num except ValueError: is_number = False return is_number

Ejecución de la muestra:

>>> is_number(''1+2j'') # Valid True # : complex number >>> is_number(''1+ 2j'') # Invalid False # : string with space in complex number represetantion # is treated as invalid complex number >>> is_number(''123'') # Valid True # : positive integer >>> is_number(''-123'') # Valid True # : negative integer >>> is_number(''abc'') # Invalid False # : some random string, not a valid number >>> is_number(''nan'') # Invalid False # : not a number "nan" string

PS: Cada operación para cada verificación, según el tipo de número, conlleva una sobrecarga adicional. Elija la versión de la función is_number que se ajuste a sus necesidades.

¿Cómo puedo detectar números o letras en una cadena? Soy consciente de que utiliza los códigos ASCII, pero ¿qué funciones los aprovechan?


Para una cadena de longitud 1, simplemente puede realizar isdigit() o isalpha()

Si la longitud de su cadena es mayor que 1, puede hacer una función algo como ...

def isinteger(a): try: int(a) return True except ValueError: return False