es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo encontrar el número de línea en el que ocurre algo?

Estaba intentando crear un programa que me indique en un texto dado si hay 2 palabras consecutivas que son iguales y dónde en el archivo de texto ocurre esto (número de línea y número de palabra). Hasta ahora he podido determinar el número de palabra, pero no puedo encontrar en qué línea ocurre. ¿Alguien podría ayudarme, por favor? Hasta ahora, junto con el Error/No Error, puedo obtener el número de palabra, pero si pudiera obtener también el número de línea sería genial.

“`

for line in (textfile):
for x, y in enumerate(zip(line.split(), line.split()[1:])):

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener el número de línea donde ocurren las palabras adyacentes en el texto dado, puedes usar la función enumerate() para llevar un registro del número de línea mientras recorres las líneas en el archivo de texto. Aquí tienes un ejemplo de código que debería lograr esto:

    with open(archivo_texto, 'r') as archivo:
        for num_linea, linea in enumerate(archivo):
            palabras = linea.split()
            for num_palabra, (palabra1, palabra2) in enumerate(zip(palabras, palabras[1:])):
                if palabra1 == palabra2:
                    print(f"Error: Palabras adyacentes {palabra1} en la línea {num_linea+1}, palabras {num_palabra+1} y {num_palabra+2}")
    

    Aquí, la función enumerate() se utiliza para recorrer las líneas en el archivo de texto, llevando un registro del número de línea en la variable num_linea. Dentro de cada línea, otra función enumerate() se utiliza para recorrer pares adyacentes de palabras, llevando un registro del número de palabra en la variable num_palabra. Cuando se encuentra que dos palabras adyacentes son iguales, se imprimen los números de línea y palabra como un mensaje de error. Ten en cuenta que se agrega +1 a los números de línea y palabra para tener en cuenta el hecho de que se indexan desde cero.

    ¡Espero que esto te ayude!

Comments are closed.