Foros del Web » Programando para Internet » Python »

aprendiz con problemas con ejercicio de subcadenas

Estas en el tema de aprendiz con problemas con ejercicio de subcadenas en el foro de Python en Foros del Web. Hola soy nuevo en esto, estoy intentando aprender Python por medio dell manual y me quedado encasillado en estos 2 ejercicios que son parecidos la ...
  #1 (permalink)  
Antiguo 12/06/2011, 08:29
 
Fecha de Ingreso: noviembre-2010
Ubicación: Sopelana
Mensajes: 6
Antigüedad: 14 años
Puntos: 0
aprendiz con problemas con ejercicio de subcadenas

Hola soy nuevo en esto, estoy intentando aprender Python por medio dell manual y me quedado encasillado en estos 2 ejercicios que son parecidos la verdad.Ojala me pudierais ayudar:muchas gracias.

206)Di seña un programa que lea una cadena y un entero y muestre por pantalla todas las subcadenas de dicha longitud:(El problema que tengo es que me saca laas subcadenas pero no evalua la condicion)
Código Python:
Ver original
  1. def subcadena(c,n):
  2.     palabras=""
  3.     for i in range(1,len(c)):
  4.         palabras +=c[i]
  5.     print(palabras)
  6.     if len(palabras)==n:
  7.         print("la subpalabra",palabras,"cumple")
  8.     print("palabras",palabras,"tienen",n,"caracteres")
  9. c=str(input("Introduce cadena"))
  10. n=int(input("Introduce un nº entero"))
  11. print(subcadena(c,n))

207)Diseña un programa que lea dos cadenas y diga si una es prefijo de la otra :
(aqui ni siquiera me deja ejecutarlo y no se porque)
Código Python:
Ver original
  1. def subcadena(c,n):
  2.    
  3.     while len(c)<len(n):
  4.         print("La cadena 1º tiene que ser mas larga que la 2º")
  5.         c=str(input("Introduce otra cadena"))
  6.         n=str(input("Intentalo de nuevo con otra cadena"))
  7.     sub=""
  8.     for i in range(len(c)):
  9.         if c[i]== n[i]:
  10.             sub +=n[i]
  11.            
  12.     print(sub,"es prefijo de",c)
  13.        
  14.    
  15.      
  16. c=str(input("Introduce otra cadena"))
  17. n=str(input("Intentalo de nuevo on otra cadena"))
  18. print(subcadena(c,n))
  #2 (permalink)  
Antiguo 12/06/2011, 09:54
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: aprendiz con problemas con ejercicio de subcadenas

Cita:
Iniciado por BARK123 Ver Mensaje
206)Di seña un programa que lea una cadena y un entero y muestre por pantalla todas las subcadenas de dicha longitud:(El problema que tengo es que me saca laas subcadenas pero no evalua la condicion)
Código Python:
Ver original
  1. def subcadena(c,n):
  2.     palabras=""
  3.     for i in range(1,len(c)):
  4.         palabras +=c[i]
  5.     print(palabras)
  6.     if len(palabras)==n:
  7.         print("la subpalabra",palabras,"cumple")
  8.     print("palabras",palabras,"tienen",n,"caracteres")
  9. c=str(input("Introduce cadena"))
  10. n=int(input("Introduce un nº entero"))
  11. print(subcadena(c,n))
??? Este programa ni siquiera saca las sub cadena. Te pondré un ejemplo si tengo "abcd" y n=2, las subcadenas serian.
"ab", "bc", "cd" en cambio tu programa hace esto "b", "bc", "bcd". Si no evalua la condición es por que no esta dentro del for. (Cuidado con la indentación).

Cita:
Iniciado por BARK123 Ver Mensaje
207)Diseña un programa que lea dos cadenas y diga si una es prefijo de la otra :
(aqui ni siquiera me deja ejecutarlo y no se porque)
Código Python:
Ver original
  1. def subcadena(c,n):
  2.    
  3.     while len(c)<len(n):
  4.         print("La cadena 1º tiene que ser mas larga que la 2º")
  5.         c=str(input("Introduce otra cadena"))
  6.         n=str(input("Intentalo de nuevo con otra cadena"))
  7.     sub=""
  8.     for i in range(len(c)):
  9.         if c[i]== n[i]:
  10.             sub +=n[i]
  11.            
  12.     print(sub,"es prefijo de",c)
  13.        
  14.    
  15.      
  16. c=str(input("Introduce otra cadena"))
  17. n=str(input("Intentalo de nuevo on otra cadena"))
  18. print(subcadena(c,n))
El problema de este programa esta en if c[i]== n[i] (Aquí c es mas grande por lo tanto es normal que falle ya que tratas de acceder a un indice de n que esta fuera del rango.

Si quieres mi consejo, utiliza el método startswith.
Por ejemplo:
Código:
s1 = "abcd"
s2 = "ab"
print s1.startswith(s2)

Etiquetas: aprendiz, ejercicio, tarea, tareas
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 16:00.