Validação de Strings em Python: Como Usar .isalnum() Para Sanitizar Entradas de Usuários
Validação de Strings em Python: Como Usar .isalnum() Para Sanitizar Entradas de Usuários
Validar a composição de dados inseridos por usuários é uma etapa crítica no tratamento de formulários, sanitização de entradas e pré-processamento de dados. O Python oferece os métodos nativos de string
.isdigit(), .isalpha() e .isalnum(), que permitem checar rapidamente se um texto é composto exclusivamente por números, letras ou uma combinação de ambos. Essa abordagem elimina a necessidade de carregar expressões regulares pesadas para validações simples do dia a dia.Python
def validar_composicao_string(texto: str) -> dict:
"""Verifica a composição de uma string utilizando métodos nativos do Python."""
if not isinstance(texto, str) or not texto:
return {
"apenas_numeros": False,
"apenas_letras": False,
"alfanumerico": False
}
# .isdigit(): Retorna True apenas se TODOS os caracteres forem dígitos (0-9)
eh_digito = texto.isdigit()
# .isalpha(): Retorna True apenas se TODOS os caracteres forem alfabéticos (a-z, A-Z)
eh_alfabetico = texto.isalpha()
# .isalnum(): Retorna True se contiver APENAS letras e/ou números (sem símbolos ou espaços)
eh_alfanumerico = texto.isalnum()
return {
"apenas_numeros": eh_digito,
"apenas_letras": eh_alfabetico,
"alfanumerico": eh_alfanumerico
}
# --- Exemplo de uso prático ---
if __name__ == "__main__":
testes = [
"123456", # Apenas dígitos
"Python", # Apenas letras
"Python3", # Alfanumérico (letras e números)
"Código 2026", # Contém espaço (falhará nas validações estritas)
"user_name!" # Contém caracteres especiais
]
for entrada in testes:
resultado = validar_composicao_string(entrada)
print(f"Entrada: '{entrada}'")
print(f" -> Apenas números? {resultado['apenas_numeros']}")
print(f" -> Apenas letras? {resultado['apenas_letras']}")
print(f" -> Alfanumérico? {resultado['alfanumerico']}\n")
Pontos-chave
- Espaços e Símbolos Retornam
False: Os métodos.isdigit(),.isalpha()e.isalnum()exigem que todos os caracteres da string atendam ao critério. Qualquer espaço em branco, ponto, hífen ou símbolo especial fará o método retornarFalse. - String Vazia Retorna
False: Chamadas como"".isdigit()ou"".isalpha()sempre retornamFalse. Sempre valide se a string não está vazia antes do processamento. - Suporte a Unicodes e Acentos: O método
.isalpha()considera caracteres acentuados (ex:"ç","á","ñ") como caracteres alfabéticos válidos, enquanto.isdigit()reconhece numerais em formato Unicode (para validar estritamente[0-9]ASCII, prefira.isdecimal()). - Números Negativos e Decimais: O método
.isdigit()avalia caracteres individuais. Portanto, números com ponto decimal ("10.5") ou sinal negativo ("-10") retornarãoFalsedevido aos símbolos.e-.

Comentários
Postar um comentário