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