Python - Ejercicio de python (módulo re)

 
Vista:
sin imagen de perfil

Ejercicio de python (módulo re)

Publicado por Kevin (1 intervención) el 08/11/2022 10:20:04
Buenos días,
tengo que hacer el siguiente ejercicio en python, utilizando el módulo re:
El presente de indicativo de los verbos regulares de la primera conjugación se conjuga sustituyendo la terminación "ar", por las terminaciones "o", "as", "a", "amos", "áis", "an"; por ejemplo:

cantar: canto, cantas, canta, cantamos, cantáis, cantan

Desarrolle una función llamada verbs que tome como parámetro un texto y devuelva una lista con todas las formas conjugadas que encuentre, en orden de aparición (si están repetidas en el texto, se repiten en la lista). Se supone que todas las palabras que tienen una de tales terminaciones corresponden a verbos regulares de la primera conjugación en presente de indicativo.

El problema es que no consigo crear un patrón que encuentre todas las palabras con dichas terminaciones, este es el código que tengo por ahora:
def verbs(text):
pattern = '\\w+as|an|áis|amos|a|o'
nlist = re.findall(pattern, text)
return nlist

Agradecería que alguien me explicara por qué mi patrón no funciona y de qué forma puedo corregirlo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ejercicio de python (módulo re)

Publicado por antonio (65 intervenciones) el 11/11/2022 17:38:42
Hola buenas una posible solución es cambiar cuando lo encuentra pero como debe hacer varios cambios lo más sencillo es hacer un bucle que cambie uno a uno de una lista:
1
2
3
4
5
6
7
8
9
10
11
import re
def verbs(text):
    lista =["as", "an", "áis", "amos", "a", "o"]
    if re.search('ar', text):
        for i in lista:
            result = re.sub('ar',i,text)
            print(result)
cadena = input("Introduce la cadena: ")
mostrar= cadena.split()
for i in mostrar:
    verbs(i)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar