Soluciones diccionarios


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

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos