1
resposta

Faça como eu fiz: documentando funções

def media(notas: list = [0]) -> float:
    '''
    Função para calcular a média das notas de um estudante.

    Parâmetros:
    notas: list, default [0]
        Lista contendo as notas do estudante.

    Retorno:
    float
        Média aritmética das notas.
    '''
    
    calculo = sum(notas) / len(notas)
    return round(calculo, 1)


# Lista de notas do estudante
notas_aluno = [8.5, 7.0, 9.5, 6.0]

# Calculando a média
resultado = media(notas_aluno)

print(f"Média final do aluno: {resultado}")

RESULTADO FINAL

Média final do aluno: 7.8

1 resposta

Olá, Estudante. Como vai?

Parabéns pela excelente prática de documentação! Escrever docstrings detalhadas e utilizar type hints (como : list e -> float) são marcas registradas de profissionais que se preocupam com a qualidade e a manutenção do código a longo prazo.

Sua função está muito bem estruturada, e o uso do round(calculo, 1) é uma ótima escolha para garantir que o resultado final seja apresentado de forma limpa e padronizada.

Para agregar ainda mais valor ao seu estudo sobre funções e documentação em Python, deixo aqui duas sugestões de boas práticas:

  • Tratamento de listas vazias: Uma característica importante de funções de média é prever o que acontece se a lista estiver vazia. No Python, tentar dividir a soma pelo len(notas) se o tamanho for zero resultará em um erro de ZeroDivisionError. Você pode adicionar uma verificação simples ou um bloco try-except para tornar sua função ainda mais robusta.
  • Cuidado com valores padrão mutáveis: Em Python, usar uma lista como valor padrão (notas: list = [0]) pode gerar comportamentos inesperados em scripts mais complexos, pois a lista é criada apenas uma vez na definição da função. Uma prática comum é usar None como padrão e inicializar a lista dentro da função:
def media(notas: list = None) -> float:
    if notas is None:
        notas = [0]
    # restante do código...

Sua iniciativa de documentar parâmetros e retornos facilita muito para que outros desenvolvedores (ou você mesmo no futuro) entendam rapidamente o propósito do código sem precisar ler toda a implementação lógica.

Espero que possa ter lhe ajudado!