Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Panic0 en 9 Enero 2021, 12:33 pm



Título: Ayuda con ejercicio en python
Publicado por: Panic0 en 9 Enero 2021, 12:33 pm
Hola,ayer me mandaron a hacer un código el cual se encargue de hacer una cierta cantidad de tareas.

La primera parte del código ya la hice y quedo,lo que no puedo hacer es la segunda parte.La cual me piden hacer el mismo código solo que esta ves usando clases,ya trate de hacerlo muchas veces pero no me sale.

Seria excelente si me podrían dar algún tipo de pista o algo que me ayude a resolver este problema

Código:

Código:
poema           =  "El unicornio blanco se ve negro a la distancia por que la noche es oscura. Mientras tanto,el caballo blanco del comisario come pasto cansinamente al lado del gallinero lleno de patos."

sep_frases      =  "."
sep_palabras   =  " "


lista_frases     =  []
lista_palabras  =  []

lista_frases     = poema.split(sep_frases)

cant_frases    = len(poema.split(sep_frases))
cant_palabras = len(poema.split(sep_palabras))

lista_palabras  = poema.split(sep_palabras)

cant_letras     = 0
for palabra in lista_palabras:
    cant_letras = cant_letras + len(palabra)

print(poema)
print("La cantidad de frases ", cant_frases)
print("La cantidad de palabras es", cant_palabras)
print(f"Este poema tiene {cant_letras} letras")

Muchas gracias de antemano.  ;)


Título: Re: Ayuda con ejercicio en python
Publicado por: tincopasan en 9 Enero 2021, 15:43 pm
hola:
hay muchas formas de resolver esto, te muestro una.

Código
  1. #-*- coding: utf -8 -*-
  2. poema           =  "El unicornio blanco se ve negro a la distancia por que la noche es oscura. Mientras tanto,el caballo blanco del comisario come pasto cansinamente al lado del gallinero lleno de patos."
  3.  
  4. class Contador:
  5.  
  6.    def __init__(self,poema,sep1,sep2):
  7.        self.poema = poema
  8.        self.sep_frases = sep1
  9.        self.sep_palabras = sep2
  10.  
  11.    def cuenta(self):
  12.        self.lista_frases= [x for x in self.poema.split(self.sep_frases) if x !=""]
  13.        self.lista_palabras = [x for x in self.poema.replace(',',' ').replace('.',' ').split(self.sep_palabras) if x !=""]
  14.        self.cant_letras = [x for j in self.lista_palabras for x in j ]
  15.        return self.poema, self.lista_frases,self.lista_palabras,self.cant_letras
  16.  
  17.  
  18. if __name__=='__main__':
  19.    clase = Contador(poema,'.',' ')
  20.    poe,fra,pal,let = clase.cuenta()
  21.    print(poe)
  22.    print("La cantidad de frases es:  ", len(fra))
  23.    print("La cantidad de palabras es: ", len(pal))
  24.    print(f"Este poema tiene {len(let)} letras")

si te fijas cuando trabajo con split() parseo la lista sin las listas vacias que genera sino da más de largo de lo que realmente es y también reemplazo los "." y "," para una mejor lectura de las letras.

hay otras formas pero está me pareció la más simple.


Título: Re: Ayuda con ejercicio en python
Publicado por: Panic0 en 9 Enero 2021, 16:05 pm
hola:
hay muchas formas de resolver esto, te muestro una.

Código
  1. #-*- coding: utf -8 -*-
  2. poema           =  "El unicornio blanco se ve negro a la distancia por que la noche es oscura. Mientras tanto,el caballo blanco del comisario come pasto cansinamente al lado del gallinero lleno de patos."
  3.  
  4. class Contador:
  5.  
  6.    def __init__(self,poema,sep1,sep2):
  7.        self.poema = poema
  8.        self.sep_frases = sep1
  9.        self.sep_palabras = sep2
  10.  
  11.    def cuenta(self):
  12.        self.lista_frases= [x for x in self.poema.split(self.sep_frases) if x !=""]
  13.        self.lista_palabras = [x for x in self.poema.replace(',',' ').replace('.',' ').split(self.sep_palabras) if x !=""]
  14.        self.cant_letras = [x for j in self.lista_palabras for x in j ]
  15.        return self.poema, self.lista_frases,self.lista_palabras,self.cant_letras
  16.  
  17.  
  18. if __name__=='__main__':
  19.    clase = Contador(poema,'.',' ')
  20.    poe,fra,pal,let = clase.cuenta()
  21.    print(poe)
  22.    print("La cantidad de frases es:  ", len(fra))
  23.    print("La cantidad de palabras es: ", len(pal))
  24.    print(f"Este poema tiene {len(let)} letras")

si te fijas cuando trabajo con split() parseo la lista sin las listas vacias que genera sino da más de largo de lo que realmente es y también reemplazo los "." y "," para una mejor lectura de las letras.

hay otras formas pero está me pareció la más simple.
Hola,muchas gracias por esa ayuda...La verdad a lo que recién comienzo cualquiera costa me parece compleja jajaj