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.

Responder a Sergi Cancelar la 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.