# 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
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.