es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Alguien puede guiarme con la forma correcta de iterar en el siguiente código?

El objetivo de este desafío es analizar una cadena para comprobar si contiene dos letras iguales seguidas. Por ejemplo, la cadena “hello” tiene dos l seguidas, mientras que la cadena “nono” no tiene dos letras idénticas seguidas.

Define una función llamada “double_letters” que tome un solo parámetro. El parámetro es una cadena. Tu función debe devolver True si hay dos letras iguales seguidas en la cadena, y False en caso contrario.

He intentado el siguiente código:

def double_letters(palabra):
    for i in range(len(palabra)+1):
        if palabra[i] == palabra[i+1]:
            return True
        else:
            return False

double_letters('hello')

El problema aquí es que cuando devuelvo falso al final de mi función, funciona perfectamente para una afirmación verdadera (por ejemplo, ‘Hello’), pero no funciona para una afirmación Falsa (por ejemplo, ‘Master’), obtengo un error en su lugar: IndexError: string index out of range.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    La solución consiste en usar un bucle for y comprobar si el carácter actual es igual al siguiente carácter. Si lo es, devuelve True, de lo contrario, devuelve False.

    def doble_letras(palabra):
        for i in range(len(palabra)-1):
            if palabra[i] == palabra[i+1]:
                return True
        return False
    
    doble_letras('hola') # Verdad
    doble_letras('maestro') # Falso
    

Comments are closed.