# Conteo de letras: Crea una función llamada contar_letras(palabra) # que tome una cadena de texto como argumento y devuelva un diccionario # que contenga el recuento de cada letra en la palabra. Ignora los espacios # y considera las letras en minúsculas y mayúsculas como iguales. def contar_letras(palabra): res = {} for letra in palabra: letra=letra.lower() # La paso a minúsculas if letra.isalpha(): # compruebo que sea una letra if letra in res: res[letra] += 1 else: res[letra] = 1 return res print(contar_letras("hola, ¿que tal estaS?")) # Calculadora de calificaciones: Crea una función llamada # calcular_promedio(calificaciones) que tome un diccionario # de calificaciones (nombre del estudiante como clave y calificación # como valor) y devuelva el promedio de todas las calificaciones. def calcular_promedio(calificaciones): total=sum(calificaciones.values()) return round(total/len(calificaciones),2) def calcular_promedio2(calificaciones): total=0 for calificacion in calificaciones.values(): total+=calificacion return round(total/len(calificaciones),2) print(calcular_promedio2({'Juan': 90, 'Ana': 85, 'Pedro': 88})) diccionario={} def calcular_algo(): # No es una función pura y suspendes el examen diccionario['algo']=42 # No debemos acceder a información fuera de la función return diccionario print(calcular_algo()) # bucle infinito: explota # Que una función se llame a ella misma se llama recursividad def error_gordo(numero): return 3#error_gordo(numero) def factorial(numero): if numero<=1: return 1 else: return factorial(numero-1)*numero print(error_gordo(4)) print(factorial(5))