Mtro. Fernando Arciniega

Apoyame con un clic en los anuncios, me ayudas a seguir generando contenido de calidad. ¡Gracias por tu apoyo!

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Search in posts
Search in pages

Cómo Crear un Programa para Buscar la Palabra «Hola» en una Matriz en Python: Guía Paso a Paso

Cómo Crear un Programa para Buscar la Palabra «Hola» en una Matriz en Python: Guía Paso a Paso
Print Friendly, PDF & Email

En esta entrada, te guiaré en la creación de un programa en Python que busca la palabra «hola» dentro de una matriz (una lista de listas). Este ejercicio es perfecto para mejorar tus habilidades en manipulación de matrices y trabajo con cadenas de caracteres en Python.

Paso 1: Comprender el Problema

El objetivo de este programa es buscar la palabra «hola» en una matriz de letras. Buscaremos la palabra de forma horizontal y vertical. Además, identificaremos todas las posiciones donde se encuentra la letra ‘h’.

Paso 2: Definir la Función buscar_hola

Comenzamos definiendo la función buscar_hola, que tomará una matriz como argumento y realizará la búsqueda.

def buscar_hola(matriz):
    filas = len(matriz)  # Número de filas en la matriz
    columnas = len(matriz[0])  # Número de columnas en la matriz
    palabra = "hola"  # La palabra que queremos buscar
    len_palabra = len(palabra)  # Longitud de la palabra

Explicación:

  • filas almacena el número de filas de la matriz.
  • columnas almacena el número de columnas.
  • palabra es la palabra que estamos buscando.
  • len_palabra es la longitud de la palabra, lo que nos ayuda a limitar la búsqueda.

Paso 3: Búsqueda Horizontal

Primero, implementamos la búsqueda de la palabra «hola» de forma horizontal.

    # Buscar horizontalmente
    for i in range(filas):
        for j in range(columnas - len_palabra + 1):
            if matriz[i][j:j+len_palabra] == list(palabra):
                print(f"Palabra '{palabra}' encontrada horizontalmente en la fila {i}, columna {j}")

Explicación:

  • El bucle externo recorre cada fila (i).
  • El bucle interno recorre las columnas dentro de la fila (j), asegurándose de que haya suficiente espacio para buscar la palabra completa.
  • matriz[i][j:j+len_palabra] selecciona un subconjunto de letras en la fila, y se compara con list(palabra) que convierte la palabra en una lista de caracteres.
  • Si se encuentra la palabra, se imprime su posición en la matriz.

Paso 4: Búsqueda Vertical

A continuación, implementamos la búsqueda vertical.

    # Buscar verticalmente
    for i in range(filas - len_palabra + 1):
        for j in range(columnas):
            if [matriz[i+k][j] for k in range(len_palabra)] == list(palabra):
                print(f"Palabra '{palabra}' encontrada verticalmente en la fila {i}, columna {j}")

Explicación:

  • El bucle externo recorre las filas, pero solo hasta filas - len_palabra + 1 para evitar desbordamientos.
  • El bucle interno recorre cada columna (j).
  • Utilizamos una lista de comprensión para construir la palabra vertical comparando cada letra con la palabra «hola».

Paso 5: Búsqueda de la Letra ‘h’

Finalmente, buscamos todas las posiciones donde se encuentra la letra ‘h’.

    # Buscar letras 'h'
    for i in range(filas):
        for j in range(columnas):
            if matriz[i][j] == 'h':
                print(f"Letra 'h' encontrada en la fila {i}, columna {j}")

Explicación:

  • Recorrimos toda la matriz usando dos bucles for.
  • Cada vez que encontramos la letra ‘h’, imprimimos su posición.

Paso 6: Probar el Programa

Probamos el programa con una matriz de ejemplo:

matriz = [
    ['a', 'b', 'h', 'x', 'z'],
    ['c', 'q', 'o', 'r', 'y'],
    ['h', 'o', 'l', 'a', 'z'],
    ['q', 's', 'a', 'n', 'z'],
    ['l', 'k', 'q', 'x', 't'],
    ['h', 'j', 'k', 'n', 'z']
]

buscar_hola(matriz)

Salida esperada:
El programa debe identificar todas las posiciones donde aparece la palabra «hola» de manera horizontal y vertical, además de las posiciones de cada letra ‘h’.

Este programa es un excelente ejercicio para practicar la manipulación de matrices y el trabajo con cadenas de caracteres en Python. Con cada paso, aprendemos cómo recorrer una matriz, extraer sublistas y comparar cadenas de manera eficiente. ¡Espero que este tutorial te haya sido útil!

def buscar_hola(matriz):
    filas = len(matriz)
    columnas = len(matriz[0])
    palabra = "hola"
    len_palabra = len(palabra)

    # Buscar horizontalmente
    for i in range(filas):
        for j in range(columnas - len_palabra + 1):
            if matriz[i][j:j+len_palabra] == list(palabra):
                print(f"Palabra '{palabra}' encontrada horizontalmente en la fila {i}, columna {j}")

    # Buscar verticalmente
    for i in range(filas - len_palabra + 1):
        for j in range(columnas):
            if [matriz[i+k][j] for k in range(len_palabra)] == list(palabra):
                print(f"Palabra '{palabra}' encontrada verticalmente en la fila {i}, columna {j}")

    # Buscar letras 'h'
    for i in range(filas):
        for j in range(columnas):
            if matriz[i][j] == 'h':
                print(f"Letra 'h' encontrada en la fila {i}, columna {j}")

matriz = [
    ['a', 'b', 'h', 'x', 'z'],
    ['c', 'q', 'o', 'r', 'y'],
    ['h', 'o', 'l', 'a', 'z'],
    ['q', 's', 'a', 'n', 'z'],
    ['l', 'k', 'q', 'x', 't'],
    ['h', 'j', 'k', 'n', 'z']
]

buscar_hola(matriz)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.