validar una solo separar saber reemplazar por palabra numeros letras funcion contiene contar caracteres caracter cadena python string condition

una - string en python



¿Cómo puedo verificar si una cadena solo contiene letras en Python? (9)

Estoy tratando de verificar si una cadena solo contiene letras, no dígitos o símbolos.

Por ejemplo:

>>> only_letters("hello") True >>> only_letters("he7lo") False


(1) Use str.isalpha () cuando imprima la cadena.

(2) Por favor, consulte el programa a continuación para su referencia: -

str = "this"; # No space & digit in this string print str.isalpha() # it gives return True str = "this is 2"; print str.isalpha() # it gives return False

Nota: - Marqué el ejemplo anterior en Ubuntu.


En realidad, ahora estamos en el mundo globalizado del siglo XXI y las personas ya no se comunican con ASCII, por lo que cuando se hace una pregunta sobre "solo letras", también se deben tener en cuenta las letras de alfabetos que no sean ASCII. Python tiene una biblioteca unicodedata muy buena que, entre otras cosas, permite la categorización de caracteres Unicode:

unicodedata.category(''陳'') ''Lo'' unicodedata.category(''A'') ''Lu'' unicodedata.category(''1'') ''Nd'' unicodedata.category(''a'') ''Ll''

Las categorías y sus abreviaturas se definen en el estándar Unicode. Desde aquí puede fácilmente encontrar una función como esta:

def only_letters(s): for c in s: cat = unicodedata.category(c) if cat not in (''Ll'',''Lu'',''Lo''): return False return True

Y entonces:

only_letters(''Bzdrężyło'') True only_letters(''He7lo'') False

Como puede ver, las categorías incluidas en la lista blanca pueden controlarse fácilmente mediante la tupla dentro de la función. Vea este artículo para una discusión más detallada.


La función str.isalpha() funciona. es decir.

if my_string.isalpha(): print(''it is letters'')



Para las personas que encuentren esta pregunta a través de Google y quieran saber si una cadena contiene solo un subconjunto de todas las letras, recomiendo usar expresiones regulares:

import re def only_letters(tested_string): match = re.match("^[ABCDEFGHJKLM]*$", tested_string) return match is not None


Parece que la gente dice que use str.isalpha .

Esta es la función de una línea para verificar si todos los caracteres son letras.

def only_letters(string): return all(letter.isalpha() for letter in string)

all acepta un iterable de booleanos, y devuelve True iff todos los booleanos son True .

De manera más general, all regresa True si los objetos en su iterable se considerarán True . Estos se considerarían False

  • 0
  • None
  • Estructuras de datos vacías (es decir: len(list) == 0 )
  • False (duh)

Sencillo:

if string.isalpha(): print("It''s all letters")

str.isalpha() solo es verdadero si todos los caracteres en la cadena son letras:

Devuelve verdadero si todos los caracteres de la cadena son alfabéticos y hay al menos un carácter, de lo contrario será falso.

Manifestación:

>>> ''hello''.isalpha() True >>> ''42hello''.isalpha() False >>> ''hel lo''.isalpha() False


Una solución bastante simple que se me ocurrió: (Python 3)

def only_letters(tested_string): for letter in tested_string: if not letter in "abcdefghjklmnopqrstuvwxyz": return False return True

Puede agregar un espacio en la cadena que está controlando si desea que se permitan espacios.


func only_letters(str): return not any(str.isdigit(c) for c in str)