Como verificar uma string contém um número em Python

Jinku Hu 30 janeiro 2023
  1. Python any Função com str.isdigit para verificar se uma String contém um número
  2. Função map()
  3. re.search(r'\d') para verificar se uma string contém um número
Como verificar uma string contém um número em Python

Este artigo introduz como verificar se uma string Python contém um número ou não.

Python embutido any função junto com str.isdigit retornará True se a string dada contiver um número, caso contrário, retornará False.

O método de busca de expressão regular Python com padrão r'\d' pode também retornar True se a string dada contiver um número.

Python any Função com str.isdigit para verificar se uma String contém um número

any função retorna True se qualquer elemento da função iterable for True, caso contrário, retorna False.

str.isdigit() retorna True se todos os caracteres da string dada forem dígitos, False de outra forma.

any(chr.isdigit() for chr in stringExample)

Se stringExample contém pelo menos um número, então o código acima retorna True porque chr.isdigit() for chr in stringExample) para chr na stringExample tem pelo menos um True na iterable.

Exemplo de trabalho*

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))

Resultado:

True
False
True

Função map()

Python map(function, iterable) função aplica function a cada elemento do dado iterable e retorna um iterador que produz o resultado acima.

Portanto, poderíamos reescrever a solução acima para,

any(map(str.isdigit, stringExample))

Exemplo de trabalho

str1 = "python1"
str2 = "nonumber"
str3 = "12345"

print(any(map(str.isdigit, str1)))
print(any(map(str.isdigit, str2)))
print(any(map(str.isdigit, str3)))

Resultado:

True
False
True

re.search(r'\d') para verificar se uma string contém um número

re.search(r'\d', string) padrão escaneia a string e retorna o objeto que corresponde ao primeiro local que corresponde ao padrãofornecido - \d que significa qualquer número entre 0 e 9 e retorna None se não for encontrada nenhuma correspondência.

import re

print(re.search(r"\d", "python3.8"))
# output: <re.Match object; span=(6, 7), match='3'>

O objeto correspondente contém o span de 2 tubos que indica a posição inicial e final do match, e também o conteúdo correspondente como match = '3'.

A função bool() pode lançar o resultado de re.search do objeto match ou None para True ou False.

Exemplo de trabalho

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)))

Resultado:

True
False
True
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Artigo relacionado - Python String