Cómo comprobar si una cadena contiene solo dígitos en Python

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo verificar si una cadena contiene solo dígitos en Python. El laboratorio explora las cadenas de dígitos e introduce el método isdigit(), una función incorporada de Python que determina si todos los caracteres de una cadena son numéricos (0-9).

Crearás un archivo de Python, digit_strings.py, y utilizarás el método isdigit() para probar cadenas que contengan solo dígitos y cadenas que contengan caracteres no numéricos. Al ejecutar el script con diferentes ejemplos de cadenas, observarás la salida True o False, lo que demuestra cómo identificar de manera efectiva las cadenas de dígitos en Python.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python/BasicConceptsGroup -.-> python/strings("Strings") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") subgraph Lab Skills python/strings -.-> lab-559568{{"Cómo comprobar si una cadena contiene solo dígitos en Python"}} python/conditional_statements -.-> lab-559568{{"Cómo comprobar si una cadena contiene solo dígitos en Python"}} python/for_loops -.-> lab-559568{{"Cómo comprobar si una cadena contiene solo dígitos en Python"}} python/build_in_functions -.-> lab-559568{{"Cómo comprobar si una cadena contiene solo dígitos en Python"}} end

Explorar cadenas de dígitos

En este paso, aprenderás sobre las cadenas de dígitos en Python y cómo identificarlas. Una cadena de dígitos es simplemente una cadena que contiene solo caracteres numéricos (0-9). Python proporciona un método incorporado llamado isdigit() que te permite verificar fácilmente si una cadena está formada solo por dígitos.

Primero, creemos un archivo de Python llamado digit_strings.py en tu directorio ~/project utilizando el 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)

Guarda el archivo. Ahora, ejecutemos el script utilizando el comando python:

python ~/project/digit_strings.py

Deberías ver la siguiente salida:

True

Esto indica que la cadena digit_string contiene solo dígitos.

Ahora, probemos con una cadena que contenga caracteres no numéricos:

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

Reemplaza el contenido de digit_strings.py con el código anterior y guárdalo. Vuelve a ejecutar el script:

python ~/project/digit_strings.py

Deberías ver la siguiente salida:

False

Esto indica que la cadena non_digit_string contiene caracteres que no son dígitos.

Utilizar el método isdigit()

En el paso anterior, aprendiste los conceptos básicos de las cadenas de dígitos y cómo utilizar el método isdigit(). En este paso, exploraremos el método isdigit() en más detalle y veremos cómo se puede utilizar con diferentes tipos de cadenas.

El método isdigit() es un método de cadena en Python que devuelve True si todos los caracteres de la cadena son dígitos, y False en caso contrario. Es una herramienta simple pero poderosa para validar la entrada del usuario o procesar datos que deben contener solo números.

Continuemos utilizando el archivo digit_strings.py en tu directorio ~/project. Modificaremos el script para probar el método isdigit() con varias cadenas.

Primero, probemos con una cadena vacía:

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

Reemplaza el contenido de digit_strings.py con el código anterior y guárdalo. Vuelve a ejecutar el script:

python ~/project/digit_strings.py

Deberías ver la siguiente salida:

False

Una cadena vacía no contiene ningún dígito, por lo que isdigit() devuelve False.

A continuación, probemos con una cadena que contenga solo espacios:

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

Reemplaza el contenido de digit_strings.py con el código anterior y guárdalo. Vuelve a ejecutar el script:

python ~/project/digit_strings.py

Deberías ver la siguiente salida:

False

Una cadena que contiene solo espacios no se considera una cadena de dígitos, por lo que isdigit() devuelve False.

Finalmente, probemos con una cadena que contenga 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)

Reemplaza el contenido de digit_strings.py con el código anterior y guárdalo. Vuelve a ejecutar el script:

python ~/project/digit_strings.py

Deberías ver la siguiente salida:

False

El método isdigit() solo devuelve True para los dígitos ASCII (0-9), no para otros caracteres Unicode que representen números.

Verificar caracteres no numéricos

En este paso, aprenderás cómo identificar si una cadena contiene algún carácter no numérico. Si bien el método isdigit() es útil para comprobar si todos los caracteres son dígitos, a veces necesitas saber si hay al menos un carácter no numérico presente.

Podemos lograr esto iterando a través de la cadena y comprobando cada carácter individualmente. Modifiquemos el archivo digit_strings.py en tu directorio ~/project para implementar esto.

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

Reemplaza el contenido de digit_strings.py con el código anterior y guárdalo. Ahora, ejecutemos el script utilizando el comando python:

python ~/project/digit_strings.py

Deberías ver la siguiente salida:

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

En este script, definimos una función has_non_digit() que itera a través de cada carácter de la cadena de entrada. Si encuentra un carácter que no es un dígito utilizando not char.isdigit(), devuelve inmediatamente True. Si el bucle se completa sin encontrar ningún carácter no numérico, devuelve False.

Este enfoque te permite determinar rápidamente si una cadena contiene algún carácter que no es un dígito, lo cual puede ser útil para la validación de datos y otras tareas.

Resumen

En este laboratorio (lab), exploraste cómo comprobar si una cadena contiene solo dígitos en Python. Aprendiste que una cadena de dígitos está formada únicamente por caracteres numéricos (0-9) y que Python proporciona el método incorporado isdigit() para una fácil identificación.

Practicaste el uso del método isdigit() con cadenas que contienen solo dígitos, lo que devuelve True, y con cadenas que contienen caracteres no numéricos, lo que devuelve False. Esto demostró la capacidad del método para validar cadenas y determinar si están compuestas enteramente por dígitos.