Foros del Web » Programando para Internet » Python »

Las constante K.

Estas en el tema de Las constante K. en el foro de Python en Foros del Web. Hola: Viendo este ejercicio. Ver ejercicio No se si he interpretado bien lo que me pide y siguiendo los ejemplos del PDF he modificado este ...
  #1 (permalink)  
Antiguo 28/10/2010, 07:21
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 729
Antigüedad: 17 años, 5 meses
Puntos: 8
Las constante K.

Hola:

Viendo este ejercicio.
Ver ejercicio

No se si he interpretado bien lo que me pide y siguiendo los ejemplos del PDF he modificado este código.

Código Python:
Ver original
  1. cadena = raw_input('Escribe una frase: ')
  2. while cadena != '':
  3.     cambios = 0
  4.     for i in range(1, len(cadena)):
  5.         if cadena[i] == ' ' and cadena[i-1] != ' ':
  6.             cambios = cambios + 1
  7.  
  8.     if cadena[-1] == ' ':
  9.         cambios = cambios - 1
  10.  
  11.     palabras = cambios + 1
  12.     print 'Palabras:', palabras, 'palabras y', i, 'carácteres.'
  13.  
  14.     cadena = raw_input('Escribe una frase: ')

Su resultado es este.
Cita:
Escribe una frase: Vale más una imagen, que mil palabras.
Palabras: 7 palabras y 38 carácteres.
Escribe una frase:
¿Qué opinas?

;)
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #2 (permalink)  
Antiguo 28/10/2010, 09:50
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Las constante K.

Diseñe un programa que lea una cadena(esto es la frase) y un entero (Este es el numero k).
Verificar si alguna de sus palabras tienen una longitud de k caracteres.

Hint: Usa split
  #3 (permalink)  
Antiguo 28/10/2010, 10:27
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 729
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: Las constante K.

Código Python:
Ver original
  1. cadena = raw_input('Escribe una frase: ')
  2. while cadena != '':
  3.     cambios = 0
  4.     anterior = ' '
  5.     for i in cadena:
  6.         if caracter == ' ' and caracter != ' ':
  7.             cambios + 1
  8.         anterior = caracter
  9.  
  10.     if cadena[-1] == ' ':
  11.         cambios = cambios - 1
  12.  
  13.     palabras = cambios + 1
  14.     print 'Palabras:', palabras, 'palabras y', i, 'carácteres.'
  15.     print 'cambios', cambios
  16.  
  17.  
  18.     cadena = raw_input('Escribe una frase: ')

Está bien el enlace, pero estoy practicando apenas sin librerías. Gracias.

Me da este error.
Cita:
Traceback (most recent call last):
File "/home/simi/NetBeansProjects/simi/src/simi.py", line 25, in <module>
if caracter == ' ' and caracter != ' ':
NameError: name 'caracter' is not defined
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #4 (permalink)  
Antiguo 28/10/2010, 10:37
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Las constante K.

for i in cadena:
mmmmm
no seria for caracter in cadena:
  #5 (permalink)  
Antiguo 29/10/2010, 14:32
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 729
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: Las constante K.

Al final es así:

Código Python:
Ver original
  1. p = raw_input('Ingresa frase: ')
  2. n = input('Ingresa numero de caracteres: ')
  3. counter = 0
  4. for i in p.split(' '):
  5.     if len(i)==n:
  6.         counter+=1
  7.  
  8. print'Hay %i palabras con %i letras' % (counter,n)





Por cierto. El ejercicio 169) no entiendo mucho. ¿Hay que hacer lo contrario?



Código Python:
Ver original
  1. p = raw_input('Ingresa frase: ')
  2. n = input('Ingresa numero de caracteres: ')
  3. counter = 0
  4. for i in p.split(' '):
  5.     if len(i)!=n:
  6.         counter+=1
  7.  
  8. print'Hay %i palabras con %i letras' % (counter,n)
Sólo cambié !=.
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #6 (permalink)  
Antiguo 29/10/2010, 14:52
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Las constante K.

Para mi esta muy claro.

Bueno el ejercicio es muy simple, pero debido a la ambigüedad de lo que es palabra se complica un poco.

Puedes tomar la siguiente definición, palabra conjunto de caracteres separados por un espacio.

Fíjate bien lo que pide, no te pide imprimir el numero de palabras, te pide imprimir si hay una o mas palabras que sean de longitud k.

Aquí te dejo un código para veas:
Código Python:
Ver original
  1. p = raw_input('Ingresa frase: ')
  2. n = int(raw_input('Ingresa numero de caracteres: '))
  3.  
  4. flag = False
  5. for i in p.split(' '):
  6.     if len(i) == n:
  7.         flag = True
  8.         break
  9.  
  10. if flag:
  11.     print "Hay al menos una palabra de longitud", n
  12. else:
  13.     print "NO hay ninguna palabra de longitud", n
  #7 (permalink)  
Antiguo 29/10/2010, 15:31
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 729
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: Las constante K.

Cita:
Ingresa frase: Una imagen vale mas que mil palabras
Ingresa numero de caracteres: 3
Hay al menos una palabra de longitud 3
¿Seguro que está bien?
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #8 (permalink)  
Antiguo 29/10/2010, 21:15
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Las constante K.

Código:
Palabra    -> Longitud
Una        -> 3
imagen     -> 6
vale       -> 4
mas        -> 3
que        -> 3
mil        -> 3
palabras   -> 8
Estoy seguro que esta bien.

Aclaración: El código es del problema 168, por lo que vi que no lo hiciste bien. Modificado para que jale para el problema 169.
  #9 (permalink)  
Antiguo 30/10/2010, 03:08
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 729
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: Las constante K.

Código Python:
Ver original
  1. p = raw_input('Ingresa frase: ')
  2. n = int(raw_input('Ingresa numero de caracteres: '))
  3.  
  4. flag = False
  5. for i in p.split(' '):
  6.     if len(i) == n:
  7.         flag = True
  8.     else:
  9.         flag = False
  10.         break
  11.  
  12. if flag:
  13.     print "Todas las palabras tienen ", n, " longitud"
  14. else:
  15.     print "No todas las palabras tienen ", n, " longitud"

Cita:
Ingresa frase: Una imagen vale mas que mil palabas
Ingresa numero de caracteres: 3
No todas las palabras tienen 3 longitud
Por lo que parece en tu resultado hay que poner muchos elif. Sigo investigando.
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar

Etiquetas: constante
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:00.