Autor
|
Tema: [Python 3x] Contar las letras de cualquier frase (Leído 12,395 veces)
|
erickcasita
Desconectado
Mensajes: 12
|
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! 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)
|
|
|
En línea
|
"Nadie nace sabiendo, Todos aprendemos y seguimos aprendiendo."
|
|
|
rub'n
Desconectado
Mensajes: 1.217
(e -> λ("live now")); tatuar -> λ("α");
|
. ^ $ * + ? { } [ ] \ | ( ) ? Pásate por aquí Regular Expressions, incluso tu código quedara mas corto homie https://docs.python.org/3/howto/regex.html
|
|
« Última modificación: 28 Enero 2018, 05:29 am por rub'n »
|
En línea
|
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
|
|
|
erickcasita
Desconectado
Mensajes: 12
|
¡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)
|
|
|
En línea
|
"Nadie nace sabiendo, Todos aprendemos y seguimos aprendiendo."
|
|
|
rub'n
Desconectado
Mensajes: 1.217
(e -> λ("live now")); tatuar -> λ("α");
|
¡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
|
|
« Última modificación: 28 Enero 2018, 06:18 am por rub'n »
|
En línea
|
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
|
|
|
dariodr01
Desconectado
Mensajes: 27
|
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)))
|
|
|
En línea
|
|
|
|
erickcasita
Desconectado
Mensajes: 12
|
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
|
|
|
En línea
|
"Nadie nace sabiendo, Todos aprendemos y seguimos aprendiendo."
|
|
|
erickcasita
Desconectado
Mensajes: 12
|
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)
|
|
|
En línea
|
"Nadie nace sabiendo, Todos aprendemos y seguimos aprendiendo."
|
|
|
crack81
Desconectado
Mensajes: 222
|
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)
|
|
|
En línea
|
Si C/C++ es el padre de los lenguajes entonces ASM es dios.
|
|
|
erickcasita
Desconectado
Mensajes: 12
|
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)
|
|
|
En línea
|
"Nadie nace sabiendo, Todos aprendemos y seguimos aprendiendo."
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Código-Python]Contar repeticion de letras en un texto - JaAViEr|0x5d
Scripting
|
0x5d
|
1
|
13,353
|
26 Abril 2012, 01:23 am
por Karcrack
|
|
|
Contar cuantas veces aparece una palabra en una frase
Scripting
|
minikarpin
|
2
|
3,837
|
16 Marzo 2017, 04:58 am
por Eleкtro
|
|
|
C sharp - Como Contar la Repeticion de una palabra en una frase.
.NET (C#, VB.NET, ASP)
|
a.p007
|
6
|
8,955
|
25 Marzo 2017, 10:13 am
por Eleкtro
|
|
|
Contar letras en cualquier oración
Programación C/C++
|
erickcasita
|
8
|
4,013
|
7 Enero 2018, 18:10 pm
por vangodp
|
|
|
Contar cuantas veces se repite cada vocal en una frase que ingresa el usuario
Programación C/C++
|
nomsaro89
|
2
|
5,866
|
2 Octubre 2019, 13:15 pm
por nomsaro89
|
|