From 95cd218a28a328831faeea211fa366f0e5b14601 Mon Sep 17 00:00:00 2001 From: jcdm60 Date: Thu, 11 May 2023 23:11:43 -0400 Subject: [PATCH] Reto #19 - Python --- .../python/jcdm60.py" | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 "Retos/Reto #19 - AN\303\201LISIS DE TEXTO [Media]/python/jcdm60.py" diff --git "a/Retos/Reto #19 - AN\303\201LISIS DE TEXTO [Media]/python/jcdm60.py" "b/Retos/Reto #19 - AN\303\201LISIS DE TEXTO [Media]/python/jcdm60.py" new file mode 100644 index 0000000000..c473ee6862 --- /dev/null +++ "b/Retos/Reto #19 - AN\303\201LISIS DE TEXTO [Media]/python/jcdm60.py" @@ -0,0 +1,47 @@ +# Reto #19: Análisis de texto +# Dificultad: Media | Publicación: 11/05/23 | Corrección: 15/05/23 + +## Enunciado + +# +# Crea un programa que analice texto y obtenga: +# - Número total de palabras. +# - Longitud media de las palabras. +# - Número de oraciones del texto (cada vez que aparecen un punto). +# - Encuentre la palabra más larga. +# +# Todo esto utilizando un único bucle. +# + +class TextAnalizer: + def __init__(self, text): + self.text = text + self.words_number = 0 + self.length_total = 0 + self.sentence_number = 0 + self.longest_word = "" + + def analize(self): + for word in self.text.split(): + self.words_number += 1 + self.length_total += len(word) + + if word[-1] in ["."]: + self.sentence_number += 1 + + if len(word) > len(self.longest_word): + self.longest_word = word + + self.average_length = self.length_total / self.words_number + + def print_results(self): + print("Número total de palabras:", self.words_number) + print("Longitud media de las palabras:", self.average_length) + print("Número de oraciones:", self.sentence_number) + print("Palabra más larga:", self.longest_word) + +if __name__ == "__main__": + text = input("Ingresa el texto a analizar: ") + analizer = TextAnalizer(text) + analizer.analize() + analizer.print_results() \ No newline at end of file