contar caracteres
Publicado por sor (12 intervenciones) el 29/12/2016 18:28:21
Ejercicio: Diseña un programa que lea una cadena y un número entero k y nos diga cuántas palabras tienen una longitud de k caracteres.
Mi conclusión:
Funciona pero no de forma "elegante" y no es exactamente lo que pide el ejercicio.
También se podría hacer con un programa del tipo:
O bien:
Pero en estos dos segundos casos me hago un poco de lío o me pierdo con las líneas que tengo que insertar para contar los caracteres en las subcadenas, y me parece más sencilla (aunque menos "elegante") la solución que propongo en primer lugar.
¿A alguien se le ocurre algo o me da una pista sobre cómo hacerlo mejor? Gracias por anticipado.
Mi conclusión:
1
2
3
4
5
6
7
8
9
10
11
print('Programa que lea una cadena y un entero y nos diga cuántas palabras tienen la misma longitud que el entero')
cadena=input('Escribe una frase: ')
k=int(input('Dame un número entero: '))
x=cadena.split()#Convierte la cadena en lista
for palabra in x:
if len(palabra)==k:
print('Hay palabras de', k, 'letras.')
else:
print('No hay palabras de', k, 'letras.')
Funciona pero no de forma "elegante" y no es exactamente lo que pide el ejercicio.
También se podría hacer con un programa del tipo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cadena=input('Escribe una frase: ')
while cadena!='':
cambios=0
anterior=' '
for caracter in cadena:
if caracter==' ' and anterior!=' ':
cambios+=1
anterior=caracter
if cadena[-1]==' ':
cambios-=1
palabras=cambios+1 #Hay una palabra más que cambios de no blanco a blanco
print('Palabras:', palabras)
cadena=input('Escribe una frase: ')
O bien:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
cadena=input('Escribe una frase: ')
while cadena!='':
cambios=0
for i in range(1,len(cadena)):
if cadena [i]==' ' and cadena [i-1]!=' ':
cambios=cambios+1
if cadena[-1]==' ':
cambios-=1
palabras=cambios+1
print('Palabras', palabras)
cadena=input('Escribe una frase: ')
Pero en estos dos segundos casos me hago un poco de lío o me pierdo con las líneas que tengo que insertar para contar los caracteres en las subcadenas, y me parece más sencilla (aunque menos "elegante") la solución que propongo en primer lugar.
¿A alguien se le ocurre algo o me da una pista sobre cómo hacerlo mejor? Gracias por anticipado.
Valora esta pregunta
0