Soluciones funciones cadena


# Crear una función extensa a la que le pasemos
# dos cadenas y nos devuelva la cadena de mayor longitud

def extensa(cadena1,cadena2):
    if len(cadena1)==len(cadena2):
        return ""
    # comparar la longitud de las dos cadenas y devolver la mas larga
    if len(cadena1)>=len(cadena2):
        return  cadena1
    else:
        return cadena2

larga=extensa("a","b")
if larga!="":
    print("La cadena mas larga es: ",larga)
else:
    print("Son iguales")</pre>


# Crear una funcion contarVocales que le pasemos una cadena y
# nos devuelva el número de vocales (a,e,i,o,u) que tiene.
# Podemos utilizar la función contarLetra

def cuenta_letras(cadena,letra):
    cont=0
    cadena=cadena.lower()
    letra=letra.lower()
    # recorrer todas las letras de la cadena
    for caracter in cadena:
        # si la letra de la cadena es igual a la letra que nos pasan
        # contamos una aparición
        if caracter==letra:
            cont+=1
    return cont
def contarVocales(cadena):
    cont = 0
    # recorrer todas las letras de la cadena
    for caracter in cadena:
        # si la letra de la cadena es igual a la letra que nos pasan
        # contamos una aparición
        if caracter == "a" or caracter=="e" or caracter=="i" or caracter=="o" or caracter=="u":
            cont += 1
    return cont

def contarVocales2(cadena):
    aes=cuenta_letras(cadena,"a")
    es=cuenta_letras(cadena,"e")
    ies=cuenta_letras(cadena,"i")
    oes=cuenta_letras(cadena,"o")
    ues=cuenta_letras(cadena,"u")
    return aes+es+ies+oes+ues

def contarVocales3(cadena):
    vocales="aeiou"
    total=0
    for vocal in vocales:
        total+=cuenta_letras(cadena,vocal)
    return total

def contarVocales4(cadena):
    vocales="aeiouáéíóúüàèìòù"
    total=0
    for vocal in vocales:
        total+=cuenta_letras(cadena,vocal)
    return total

print(contarVocales4("Está El pingüino"))</pre>

# Crear una función recortar a la que le pasamos una cadena y dos
# números y nos devuelva una cadena 'recortada' por la izquierda y
# la derecha con los valores que le hemos pasado.
# Punto extra si comprobamos si la cadena se puede o no recortarCrear
# una función recortar a la que le pasamos una cadena y dos números y
# nos devuelva una cadena 'recortada' por la izquierda y la derecha con los valores que le hemos pasado. Punto extra si comprobamos si la cadena se puede o no recortar

def recortar(cadena,left,right):
    if left+right>len(cadena):
        return ""
    return cadena[left:-right]

print(recortar("abcdefghi",2,3))


# Crear una función  arrobar que nos cambie
# todas las 'a' minúscula por el símbolo '@'

def arrobar(cadena):
    return cadena.replace('a','@')

print(arrobar("mañana"))

# Crear una función invertir a la que le pasemos una cadena
# y nos la devuelva invertida: invertir("hola")->"aloh"

def invertir(cadena):
    return cadena[::-1] # operador slicing

def invertir2(cadena):
    res=""
    for letra in cadena:
        res=letra+res
    return res

nombre="Ana Pi"
print(nombre[1:6:2])
print(nombre[1:])
print(nombre[::-1])

print(invertir2("hola"))

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos