elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Python 3x] Contar las letras de cualquier frase
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python 3x] Contar las letras de cualquier frase  (Leído 12,395 veces)
erickcasita

Desconectado Desconectado

Mensajes: 12



Ver Perfil
[Python 3x] Contar las letras de cualquier frase
« 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

Código
  1. titulo= "Contar las letras de cualquier frase".capitalize() #Variable para el titulo
  2. print (titulo.center(50,"*"))#centro el titulo
  3. frc=(input("Ingresa una frase "))#se solicita la frase
  4. let=len(frc)#saco la logitud original
  5. cont=0 #contador para los espacios
  6. contnum=0 #contador para los numeros
  7. contpuc=0 #contador para los signos
  8. suma=0 #variable para sumar los contadores
  9. for i in range(0,let):
  10.    if (frc[i].isspace()):
  11.        cont+=1
  12.    elif(frc[i].isdigit()):
  13.        contnum+=1
  14.    elif(frc[i] in "?¡¿*,.-_'"): #agrego los signos a discriminar (no se si hay un método)
  15.        contpuc+=1
  16.    suma=cont+contnum+contpuc #sumo los contadores
  17. rpta=let-suma #al final solo lo resto a la longitud original
  18. print("La frase tiene palabras",rpta)
  19.  


En línea

"Nadie nace sabiendo, Todos aprendemos y seguimos aprendiendo."
rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: [Python 3x] Contar las letras de cualquier frase
« Respuesta #1 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


« Última modificación: 28 Enero 2018, 05:29 am por rub'n » En línea

rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
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 Desconectado

Mensajes: 12



Ver Perfil
Re: [Python 3x] Contar las letras de cualquier frase
« Respuesta #2 en: 28 Enero 2018, 05:48 am »

¡Gracias! sigo leyendo un poco sobre las expresiones regulares
Código
  1. import re
  2. titulo= "Contar las letras de cualquier frase".capitalize() #Variable para el titulo
  3. print (titulo.center(50,"*"))#centro el titulo
  4. frc=(input("Ingresa una frase "))#se solicita la frase
  5. let=len(frc)#saco la logitud original
  6. contnum=0 #contador para los numeros
  7. contpuc=0 #contador para los signos
  8. suma=0 #variable para sumar los contadores
  9. for i in range(0,let):
  10.    if(frc[i].isdigit()): #cuento los numeros
  11.        contnum+=1
  12.    elif(re.search("[^a-zA-Z0-9_]",frc[i])): #cuento los espacios en blanco y cualquier signo
  13.        contpuc+=1
  14.    suma=contnum+contpuc #sumo los contadores
  15. rpta=let-suma #al final solo lo resto a la longitud original
  16. print("La frase tiene palabras",rpta)
  17.  
En línea

"Nadie nace sabiendo, Todos aprendemos y seguimos aprendiendo."
rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: [Python 3x] Contar las letras de cualquier frase
« Respuesta #3 en: 28 Enero 2018, 05:58 am »

¡Gracias! sigo leyendo un poco sobre las expresiones regulares
Código
  1. import re
  2. titulo= "Contar las letras de cualquier frase".capitalize() #Variable para el titulo
  3. print (titulo.center(50,"*"))#centro el titulo
  4. frc=(input("Ingresa una frase "))#se solicita la frase
  5. let=len(frc)#saco la logitud original
  6. contnum=0 #contador para los numeros
  7. contpuc=0 #contador para los signos
  8. suma=0 #variable para sumar los contadores
  9. for i in range(0,let):
  10.    if(frc[i].isdigit()): #cuento los numeros
  11.        contnum+=1
  12.    elif(re.search("[^a-zA-Z0-9_]",frc[i])): #cuento los espacios en blanco y cualquier signo
  13.        contpuc+=1
  14.    suma=contnum+contpuc #sumo los contadores
  15. rpta=let-suma #al final solo lo resto a la longitud original
  16. print("La frase tiene palabras",rpta)
  17.  

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

rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
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 Desconectado

Mensajes: 27


Ver Perfil
Re: [Python 3x] Contar las letras de cualquier frase
« Respuesta #4 en: 28 Enero 2018, 15:55 pm »

Esto es lo que quieres.
Salu2

Código
  1. def cuentaCaracteres(frase):
  2.  c = 0
  3.  
  4.  for i in range(len(frase)):
  5.    if frase[i].isalpha():
  6.      c += 1
  7.  
  8.  return c
  9.  
  10. #Main
  11. cadena = input('Ingrese una frase:')
  12. print('La frase "%s" tiene %d caracteres' %(cadena,cuentaCaracteres(cadena)))
  13.  
En línea

erickcasita

Desconectado Desconectado

Mensajes: 12



Ver Perfil
Re: [Python 3x] Contar las letras de cualquier frase
« Respuesta #5 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
En línea

"Nadie nace sabiendo, Todos aprendemos y seguimos aprendiendo."
erickcasita

Desconectado Desconectado

Mensajes: 12



Ver Perfil
Re: [Python 3x] Contar las letras de cualquier frase
« Respuesta #6 en: 29 Enero 2018, 17:04 pm »

Esto es lo que quieres.
Salu2

Código
  1. def cuentaCaracteres(frase):
  2.  c = 0
  3.  
  4.  for i in range(len(frase)):
  5.    if frase[i].isalpha():
  6.      c += 1
  7.  
  8.  return c
  9.  
  10. #Main
  11. cadena = input('Ingrese una frase:')
  12. print('La frase "%s" tiene %d caracteres' %(cadena,cuentaCaracteres(cadena)))
  13.  

!Gracias!
Creo que de todas las formas que he hecho este ejercicio esta es la más sencilla saludos!
Código
  1. titulo= "Contar las letras de cualquier frase".capitalize() #Variable para el titulo
  2. print (titulo.center(50,"*"))#centro el titulo
  3. frc=(input("Ingresa una frase "))#se solicita la frase
  4. let=len(frc)#saco la logitud original
  5. contsig=0 #contador de letras
  6. for i in range(0,let):
  7.  
  8.     if(frc[i].isalpha()):
  9.        contsig+=1
  10. print("Numero de letras:",contsig)
  11.  
  12.  
En línea

"Nadie nace sabiendo, Todos aprendemos y seguimos aprendiendo."
crack81

Desconectado Desconectado

Mensajes: 222



Ver Perfil
Re: [Python 3x] Contar las letras de cualquier frase
« Respuesta #7 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

Código
  1. [/code#declare variable
  2. counter = 0
  3. data = "Hello World"
  4.  
  5.  
  6. for letter in data:
  7. if letter.isalpha(): counter += 1
  8.  
  9. 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 Desconectado

Mensajes: 12



Ver Perfil
Re: [Python 3x] Contar las letras de cualquier frase
« Respuesta #8 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

Código
  1. [/code#declare variable
  2. counter = 0
  3. data = "Hello World"
  4.  
  5.  
  6. for letter in data:
  7. if letter.isalpha(): counter += 1
  8.  
  9. print "The string has {0} letters".format(counter)

Gracias incluso se hace mas a meno el codigo:
Código
  1. def contarLetras():
  2.    titulo= "Contar las letras de cualquier frase".capitalize() #Variable para el titulo
  3.    print (titulo.center(50,"*"))#centro el titulo
  4.    frc=(input("Ingresa una frase "))#se solicita la frase
  5.    contsig=0
  6.    for i in frc:
  7.         if(i.isalpha()):
  8.            contsig+=1
  9.    print("Número de letras:",contsig)
  10.  
En línea

"Nadie nace sabiendo, Todos aprendemos y seguimos aprendiendo."
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines