1 usuario conectado

Extraer números enteros. Ejercicio en Python

Comparte esto

 
Escribe una función en Python llamada extraer_numeros_enteros que tome una cadena de texto como entrada y devuelva una lista de todos los números enteros que encuentre en el texto.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Extraer números enteros

📋 Copiar código


import re

def extraer_numeros_enteros(texto):
  """
  Extrae todos los números enteros de una cadena de texto.

  Args:
    texto: La cadena de texto de entrada.

  Returns:
    Una lista de todos los números enteros encontrados (como cadenas).
  """
  patron = re.compile(r'\b\d+\b')
  numeros = patron.findall(texto)
  return numeros

# Ejemplos de uso
texto1 = "Hay 3 manzanas y 10 naranjas."
resultado1 = extraer_numeros_enteros(texto1)
print(f"Números enteros en '{texto1}': {resultado1}")

texto2 = "El año es 2023."
resultado2 = extraer_numeros_enteros(texto2)
print(f"Números enteros en '{texto2}': {resultado2}")

texto3 = "Números negativos como -5 no se extraen."
resultado3 = extraer_numeros_enteros(texto3)
print(f"Números enteros en '{texto3}': {resultado3}")

texto4 = "Decimales como 3.14 tampoco."
resultado4 = extraer_numeros_enteros(texto4)
print(f"Números enteros en '{texto4}': {resultado4}")

texto5 = "Múltiples números: 1 22 333."
resultado5 = extraer_numeros_enteros(texto5)
print(f"Números enteros en '{texto5}': {resultado5}")

texto6 = "Sin números aquí."
resultado6 = extraer_numeros_enteros(texto6)
print(f"Números enteros en '{texto6}': {resultado6}")

texto7 = ""
resultado7 = extraer_numeros_enteros(texto7)
print(f"Números enteros en '': {resultado7}")


Explicación del Código:

  1. import re:

    • Importa el módulo re para trabajar con expresiones regulares.
  2. def extraer_numeros_enteros(texto)::

    • Define una función llamada extraer_numeros_enteros que toma una cadena de texto (texto) como entrada.
  3. patron = re.compile(r'\b\d+\b'):

    • Compila una expresión regular para buscar números enteros:
      • \b: Coincide con un límite de palabra (asegurando que el número no esté pegado a letras).
      • \d+: Coincide con uno o más dígitos (0-9).
      • \b: Coincide con otro límite de palabra.
      • Este patrón busca secuencias completas de uno o más dígitos que estén delimitadas por no-dígitos o los límites de la cadena.
  4. numeros = patron.findall(texto):

    • Utiliza el método findall() del objeto de expresión regular para encontrar todas las coincidencias del patrón en la cadena texto.
    • findall() devuelve una lista de todas las subcadenas que coinciden con el patrón.
  5. return numeros:

    • Devuelve la lista numeros que contiene todos los números enteros encontrados en el texto (como cadenas de texto).

Ejemplos de Uso:

Los ejemplos muestran cómo la función extrae los números enteros de diferentes cadenas de texto. Se observa que no extrae números negativos ni números con decimales, ya que el patrón \d+ solo busca uno o más dígitos.