Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: ChicoMaravilla en 24 Enero 2011, 01:31 am



Título: [Python] - Ejercicio Concatenación
Publicado por: ChicoMaravilla en 24 Enero 2011, 01:31 am
Buenas noches a todos, Acudo a este foro porque tengo un pregunta sobre un ejercicio. bueno, es el ejercicio numero 272 del libro marmota, el cual dice:


· 272 Diseña una función llamada es_repeticion que reciba una cadena y nos diga si la
cadena está formada mediante la concatenación de una cadena consigo misma. Por ejemplo,
es_repeticion(’abab’) devolverá True, pues la cadena ’abab’ está formada con la cadena ’ab’
repetida; por contra es_repeticion(’ababab’) devolverá False

Bueno, yo lo que hice fue lo siguiente:

Código
  1. def es_repeticion(x):
  2.    letras=len (x)
  3.    mitad=letras/2
  4.    mitadmitad=mitad-1
  5.    lista=list(x)
  6.    if letras%2==0:
  7.        if lista[mitadmitad::]==lista[:mitadmitad:]:
  8.            return True
  9.        else:
  10.            return False
  11. repeticion=raw_input("Dame una concatenacion: ")
  12. print es_repeticion(repeticion)

si alguien podría decirme mi error, o cea el script ejecuta sin errores, pero siempre me devuelve false, aun siendo true.
desde ya muchas gracias.


Título: Re: [Python] - Ejercicio Concatenación
Publicado por: ChicoMaravilla en 24 Enero 2011, 18:23 pm
uuuuuuuuuuuh XD ya descubrí mi error

alfinal el script es así:

Código
  1. def es_repeticion(x):
  2.    letras=len (x)
  3.    mitad=letras/2
  4.    mitadmitad=mitad-1
  5.    lista=list(x)
  6.    if letras%2==0:
  7.        if lista[mitad::]==lista[:mitad:]:
  8.            return True
  9.        else:
  10.            return False
  11. repeticion=raw_input("Dame una concatenacion: ")
  12. print es_repeticion(repeticion)

saque el mitadmitad, se ve que razone mal, porque yo puce mitad mitad que era la mitad-1 ya que el indice de las listas empieza con 0 y por eso lo hice.

 :laugh: