Título: [Python 3x] Contar las letras de cualquier frase
Publicado por: erickcasita en 28 Enero 2018, 03:54 am
Hola, comunidad soy relativamente nuevo en python y me propuse contar las letras de cualquer frase esto es lo que tengo, como soy nuevo no se que más agregarle o que modificarle para que el código bien. Tampoco encuentro un método que me ayude a excluir los signos ¡Saludos! ;D ;D titulo= "Contar las letras de cualquier frase".capitalize() #Variable para el titulo print (titulo.center(50,"*"))#centro el titulo frc=(input("Ingresa una frase "))#se solicita la frase let=len(frc)#saco la logitud original cont=0 #contador para los espacios contnum=0 #contador para los numeros contpuc=0 #contador para los signos suma=0 #variable para sumar los contadores for i in range(0,let): if (frc[i].isspace()): cont+=1 elif(frc[i].isdigit()): contnum+=1 elif(frc[i] in "?¡¿*,.-_'"): #agrego los signos a discriminar (no se si hay un método) contpuc+=1 suma=cont+contnum+contpuc #sumo los contadores rpta=let-suma #al final solo lo resto a la longitud original print("La frase tiene palabras",rpta)
Título: Re: [Python 3x] Contar las letras de cualquier frase
Publicado por: rub'n en 28 Enero 2018, 04:15 am
. ^ $ * + ? { } [ ] \ | ( ) ?
Pásate por aquí Regular Expressions, incluso tu código quedara mas corto homie https://docs.python.org/3/howto/regex.html
Título: Re: [Python 3x] Contar las letras de cualquier frase
Publicado por: erickcasita en 28 Enero 2018, 05:48 am
¡Gracias! sigo leyendo un poco sobre las expresiones regulares import re titulo= "Contar las letras de cualquier frase".capitalize() #Variable para el titulo print (titulo.center(50,"*"))#centro el titulo frc=(input("Ingresa una frase "))#se solicita la frase let=len(frc)#saco la logitud original contnum=0 #contador para los numeros contpuc=0 #contador para los signos suma=0 #variable para sumar los contadores for i in range(0,let): if(frc[i].isdigit()): #cuento los numeros contnum+=1 elif(re.search("[^a-zA-Z0-9_]",frc[i])): #cuento los espacios en blanco y cualquier signo contpuc+=1 suma=contnum+contpuc #sumo los contadores rpta=let-suma #al final solo lo resto a la longitud original print("La frase tiene palabras",rpta)
Título: Re: [Python 3x] Contar las letras de cualquier frase
Publicado por: rub'n en 28 Enero 2018, 05:58 am
¡Gracias! sigo leyendo un poco sobre las expresiones regulares import re titulo= "Contar las letras de cualquier frase".capitalize() #Variable para el titulo print (titulo.center(50,"*"))#centro el titulo frc=(input("Ingresa una frase "))#se solicita la frase let=len(frc)#saco la logitud original contnum=0 #contador para los numeros contpuc=0 #contador para los signos suma=0 #variable para sumar los contadores for i in range(0,let): if(frc[i].isdigit()): #cuento los numeros contnum+=1 elif(re.search("[^a-zA-Z0-9_]",frc[i])): #cuento los espacios en blanco y cualquier signo contpuc+=1 suma=contnum+contpuc #sumo los contadores rpta=let-suma #al final solo lo resto a la longitud original print("La frase tiene palabras",rpta)
Creo que tienes detalles en la linea 12 pásate por acá https://regex101.com/r/rR2hZ1/7 osea digo, xq en un principio tu objetivo era contar letras de cualquier frase
Título: Re: [Python 3x] Contar las letras de cualquier frase
Publicado por: dariodr01 en 28 Enero 2018, 15:55 pm
Esto es lo que quieres. Salu2 def cuentaCaracteres(frase): c = 0 for i in range(len(frase)): if frase[i].isalpha(): c += 1 return c #Main cadena = input('Ingrese una frase:') print('La frase "%s" tiene %d caracteres' %(cadena,cuentaCaracteres(cadena)))
Título: Re: [Python 3x] Contar las letras de cualquier frase
Publicado por: erickcasita en 29 Enero 2018, 16:59 pm
Creo que tienes detalles en la linea 12 pásate por acá https://regex101.com/r/rR2hZ1/7 osea digo, xq en un principio tu objetivo era contar letras de cualquier frase
Curiosamente si funciona bien aunque si quito la instrucción isdigit me cuenta tambien los números a la hora de imprimirlos por eso la deje... saludos
Título: Re: [Python 3x] Contar las letras de cualquier frase
Publicado por: erickcasita en 29 Enero 2018, 17:04 pm
Esto es lo que quieres. Salu2 def cuentaCaracteres(frase): c = 0 for i in range(len(frase)): if frase[i].isalpha(): c += 1 return c #Main cadena = input('Ingrese una frase:') print('La frase "%s" tiene %d caracteres' %(cadena,cuentaCaracteres(cadena)))
!Gracias! Creo que de todas las formas que he hecho este ejercicio esta es la más sencilla saludos! titulo= "Contar las letras de cualquier frase".capitalize() #Variable para el titulo print (titulo.center(50,"*"))#centro el titulo frc=(input("Ingresa una frase "))#se solicita la frase let=len(frc)#saco la logitud original contsig=0 #contador de letras for i in range(0,let): if(frc[i].isalpha()): contsig+=1 print("Numero de letras:",contsig)
Título: Re: [Python 3x] Contar las letras de cualquier frase
Publicado por: crack81 en 29 Enero 2018, 18:00 pm
Hola en lugar de utilizar la funcion len para calcular el tamano de la cadena simplemente puedes iterar naturalmente sobre la cadena usando el for y python se encarga de lo demas [/code#declare variable counter = 0 data = "Hello World" for letter in data: if letter.isalpha(): counter += 1 print "The string has {0} letters".format(counter)
Título: Re: [Python 3x] Contar las letras de cualquier frase
Publicado por: erickcasita en 29 Enero 2018, 18:32 pm
Hola en lugar de utilizar la funcion len para calcular el tamano de la cadena simplemente puedes iterar naturalmente sobre la cadena usando el for y python se encarga de lo demas [/code#declare variable counter = 0 data = "Hello World" for letter in data: if letter.isalpha(): counter += 1 print "The string has {0} letters".format(counter)
Gracias incluso se hace mas a meno el codigo: def contarLetras(): titulo= "Contar las letras de cualquier frase".capitalize() #Variable para el titulo print (titulo.center(50,"*"))#centro el titulo frc=(input("Ingresa una frase "))#se solicita la frase contsig=0 for i in frc: if(i.isalpha()): contsig+=1 print("Número de letras:",contsig)
|