Como Verificar se uma String Contém Apenas Dígitos em Python

PythonBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar se uma string contém apenas dígitos em Python. O laboratório explora strings de dígitos e introduz o método isdigit(), uma função embutida do Python que determina se todos os caracteres em uma string são numéricos (0-9).

Você criará um arquivo Python, digit_strings.py, e usará o método isdigit() para testar strings contendo apenas dígitos e strings contendo caracteres não-dígitos. Ao executar o script com diferentes exemplos de strings, você observará a saída True ou False, demonstrando como identificar efetivamente strings de dígitos em Python.

Explorar Strings de Dígitos

Nesta etapa, você aprenderá sobre strings de dígitos em Python e como identificá-las. Uma string de dígito é simplesmente uma string que contém apenas caracteres numéricos (0-9). Python fornece um método embutido chamado isdigit() que permite verificar facilmente se uma string consiste apenas em dígitos.

Primeiro, vamos criar um arquivo Python chamado digit_strings.py em seu diretório ~/project usando o editor VS Code.

## Create a string containing only digits
digit_string = "12345"

## Use the isdigit() method to check if the string contains only digits
is_digit = digit_string.isdigit()

## Print the result
print(is_digit)

Salve o arquivo. Agora, vamos executar o script usando o comando python:

python ~/project/digit_strings.py

Você deve ver a seguinte saída:

True

Isso indica que a string digit_string contém apenas dígitos.

Agora, vamos tentar com uma string que contém caracteres não-dígitos:

## Create a string containing digits and letters
non_digit_string = "123abc"

## Use the isdigit() method to check if the string contains only digits
is_digit = non_digit_string.isdigit()

## Print the result
print(is_digit)

Substitua o conteúdo de digit_strings.py com o código acima e salve-o. Execute o script novamente:

python ~/project/digit_strings.py

Você deve ver a seguinte saída:

False

Isso indica que a string non_digit_string contém caracteres que não são dígitos.

Usar o Método isdigit()

Na etapa anterior, você aprendeu os conceitos básicos de strings de dígitos e como usar o método isdigit(). Nesta etapa, exploraremos o método isdigit() com mais detalhes e veremos como ele pode ser usado com diferentes tipos de strings.

O método isdigit() é um método de string em Python que retorna True se todos os caracteres na string forem dígitos e False caso contrário. É uma ferramenta simples, mas poderosa, para validar a entrada do usuário ou processar dados que devem conter apenas números.

Vamos continuar usando o arquivo digit_strings.py em seu diretório ~/project. Modificaremos o script para testar o método isdigit() com várias strings.

Primeiro, vamos testar com uma string vazia:

## Create an empty string
empty_string = ""

## Use the isdigit() method to check if the string contains only digits
is_digit = empty_string.isdigit()

## Print the result
print(is_digit)

Substitua o conteúdo de digit_strings.py com o código acima e salve-o. Execute o script novamente:

python ~/project/digit_strings.py

Você deve ver a seguinte saída:

False

Uma string vazia não contém nenhum dígito, então isdigit() retorna False.

Em seguida, vamos testar com uma string contendo apenas espaços:

## Create a string containing only spaces
space_string = "   "

## Use the isdigit() method to check if the string contains only digits
is_digit = space_string.isdigit()

## Print the result
print(is_digit)

Substitua o conteúdo de digit_strings.py com o código acima e salve-o. Execute o script novamente:

python ~/project/digit_strings.py

Você deve ver a seguinte saída:

False

Uma string contendo apenas espaços não é considerada uma string de dígito, então isdigit() retorna False.

Finalmente, vamos testar com uma string contendo dígitos Unicode:

## Create a string containing Unicode digits
unicode_digit_string = "一二三" ## These are Chinese numerals

## Use the isdigit() method to check if the string contains only digits
is_digit = unicode_digit_string.isdigit()

## Print the result
print(is_digit)

Substitua o conteúdo de digit_strings.py com o código acima e salve-o. Execute o script novamente:

python ~/project/digit_strings.py

Você deve ver a seguinte saída:

False

O método isdigit() retorna True apenas para dígitos ASCII (0-9), não para outros caracteres Unicode que representam números.

Verificar Caracteres Não-Dígitos

Nesta etapa, você aprenderá como identificar se uma string contém algum caractere que não seja um dígito. Embora o método isdigit() seja útil para verificar se todos os caracteres são dígitos, às vezes você precisa saber se há pelo menos um caractere não-dígito presente.

Podemos conseguir isso iterando pela string e verificando cada caractere individualmente. Vamos modificar o arquivo digit_strings.py em seu diretório ~/project para implementar isso.

def has_non_digit(input_string):
  """
  Checks if a string contains any non-digit characters.
  """
  for char in input_string:
    if not char.isdigit():
      return True  ## Found a non-digit character
  return False  ## No non-digit characters found


## Test cases
string1 = "12345"
string2 = "123abc"
string3 = "  123"

print(f"'{string1}' has non-digit characters: {has_non_digit(string1)}")
print(f"'{string2}' has non-digit characters: {has_non_digit(string2)}")
print(f"'{string3}' has non-digit characters: {has_non_digit(string3)}")

Substitua o conteúdo de digit_strings.py com o código acima e salve-o. Agora, vamos executar o script usando o comando python:

python ~/project/digit_strings.py

Você deve ver a seguinte saída:

'12345' has non-digit characters: False
'123abc' has non-digit characters: True
'  123' has non-digit characters: True

Neste script, definimos uma função has_non_digit() que itera por cada caractere da string de entrada. Se encontrar um caractere que não seja um dígito usando not char.isdigit(), ele retorna imediatamente True. Se o loop for concluído sem encontrar nenhum caractere não-dígito, ele retorna False.

Essa abordagem permite que você determine rapidamente se uma string contém algum caractere que não seja um dígito, o que pode ser útil para validação de dados e outras tarefas.

Resumo

Neste laboratório, você explorou como verificar se uma string contém apenas dígitos em Python. Você aprendeu que uma string de dígito consiste apenas em caracteres numéricos (0-9) e que o Python fornece o método embutido isdigit() para fácil identificação.

Você praticou o uso do método isdigit() com strings contendo apenas dígitos, que retornaram True, e strings contendo caracteres não-dígitos, que retornaram False. Isso demonstrou a capacidade do método de validar strings e determinar se elas são compostas inteiramente por dígitos.