Ejercicios cadenas Python

# Vamos a crear una función cuantasPalabras a la que le pasamos una cadena y un caracte
# Y nos dice cuantas palabras en esa cadena contienen ese caracter
# cuantasPalabras("En un lugar de la mancha","e")->2
# cuantasPalabras("En un lugar de la mancha","n")->3
# cuantasPalabras("En un lugar de la mancha","j")->0
# Como veis da lo mismo mayúsculas que minúsculas

def cuantasPalabras(cadena, letra):
    """Nos cuenta cuantas palabras tienen esa letra"""
    cadena = cadena.lower()
    letra = letra.lower()
    cont = 0
    # recorrer las palabras
    for palabra in cadena.split():
        # saber si una palabra tiene esa letra
        if letra in palabra:
            cont += 1
    return cont


print(cuantasPalabras("En un lugar de la mancha", "e"))  # 2
print(cuantasPalabras("En un lugar de la mancha", "n"))  # 3
print(cuantasPalabras("En un lugar de la mancha", "j"))  # 0
print(cuantasPalabras("En un lugar de la mancha", "a"))  # 3


# Vamos a crear una función mezclar a la que le pasamos una cadena y nos crea otra con
# la primera parte las letras pares y la segunda las impares, con unos ejemplos lo vemos mejor:
# mezclar("abcdefg")->"acegbdf" mezclar("12345678")->"13572468"

def mezclarFor(cadena):
    """Nos crea una cadena con las letras pares primero y después las impares"""
    par = ""
    impar = ""
    for i in range(len(cadena)):
        if i % 2 == 0:
            par += cadena[i]
        else:
            impar += cadena[i]
    return par + impar


def mezclar(cadena):
    """Nos crea una cadena con las letras pares primero y después las impares"""
    return cadena[0::2] + cadena[1::2]


print(mezclar("abcdefg"))  # acegbdf
print(mezclar("12345678"))  # 13572468


# Vamos a crear una funcion que nos devuelva True si hay dos letras iguales repetidas
# repetidas("hola que tal")->False
# repetidas("viva sevilla")->True (hay dos l)
# repetidas("mi carro me lo robaron")->True (hay dos r)

def repetidas(cadena):
    for i in range(len(cadena) - 1):
        if cadena[i] == cadena[i + 1]:
            return True
    return False


print(repetidas("hola que tal"))  # ->False
print(repetidas("viva sevilla"))  # ->True (hay dos l)
print(repetidas("mi carro me lo robaron"))  # ->True (hay dos r)


def dobleLetra(frase):
    fraseLower = frase.lower()  # pongo el lower para que me pueda identificar todos los caracteres iguales
    indice = 1  # variable de soporte para comparar cada letra en el for vs. la siguiente letra de fraseLower (la cadena en la que busco dobles seguidos)
    for letra in fraseLower:
        if indice < len(frase) and letra == fraseLower[indice]:
            return True
        else:
            indice += 1
    return False


print(dobleLetra("Hola que tal"))  # debería devolver un false
print(dobleLetra("Mi carro me lo robaron"))  # debería devolver True

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos

Un comentario en «Ejercicios cadenas Python»

  1. def cuantasPalabras(cadena, caracter):
    cadena = cadena.lower()
    caracter = caracter.lower()

    palabras = cadena.split()

    contador = 0

    for palabra in palabras:
    if caracter in palabra:
    contador += 1

    return contador

    print(cuantasPalabras(“En un lugar de la mancha”, “e”))
    print(cuantasPalabras(“En un lugar de la mancha”, “n”))
    print(cuantasPalabras(“En un lugar de la mancha”, “j”))

    Los otros ejercicios no me salen.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.