1
resposta

[Projeto] Palavras em comum

import string



def inserir_textos():
    while True:
        texto1 = input('Digite o primeiro texto: ')
        if not texto1:
            print("O texto não pode estar vazio. Tente novamente.")
            continue
        
        texto2 = input('Digite o segundo texto: ')
        if not texto2:
            print("O texto não pode estar vazio. Tente novamente.")
            continue
        
        return texto1, texto2



def formatar_textos(texto: str) -> set[str]:
    texto = texto.lower()
    texto = texto.translate(str.maketrans('', '', string.punctuation))
    palavras = texto.split()
    return set(palavras)
    


def palavras_em_comum(palavras1: str, palavras2: str) -> set[str]:
    comuns = palavras1 & palavras2
    return {palavra for palavra in comuns if len(palavra) >= 2}


def main():
    texto1, texto2 = inserir_textos()
    palavras1 = formatar_textos(texto1)
    palavras2 = formatar_textos(texto2)
    comuns = palavras_em_comum(palavras1, palavras2)

    print('\nPalavras em comum: ')

    if comuns:
        for palavra in sorted(comuns):
            print(f'{palavra}')
    else:
        print("Nenhuma palavra em comum encontrada.")


if __name__ == '__main__':
    main()
1 resposta

Oi, Matheus! Como vai?

Gostei da forma como você usou conjuntos para identificar palavras em comum entre os textos, isso deixa o código eficiente e claro. Uma dica interessante para o futuro é usar o método intersection() dos conjuntos, que também retorna a interseção entre eles e pode deixar seu código ainda mais legível. Veja este exemplo:

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!