Olá, Eduardo!
Vou tentar esclarecer suas dúvidas sobre a criação de funções em Python.
Primeiramente, sobre a palavra 'lista' no bloco de código. Em Python, o interpretador não precisa que você especifique o tipo do parâmetro que está sendo passado para a função. Quando você define uma função como def media(lista):
, o Python entende que 'lista' é o nome do parâmetro que você está passando para a função. O tipo desse parâmetro (seja ele uma lista, um dicionário, um número, uma string, etc.) não é checado até que a função seja realmente executada. Portanto, é possível passar qualquer tipo de dado para a função 'media', mas se você passar um tipo de dado que não pode ser processado pela função (como um dicionário, por exemplo), você receberá um erro em tempo de execução.
Sobre a criação de textos de ajuda em funções que nós criamos, sim, é possível! Você pode adicionar uma "docstring" à sua função, que é assunto de um das atividades Para saber mais deste mesmo curso. Ela é um texto de ajuda que será exibido quando você usar a função help()
. Uma docstring é uma string que você coloca na primeira linha do corpo da função, geralmente entre três aspas duplas. Aqui está um exemplo:
def media(lista):
"""
Esta função calcula a média dos números em uma lista.
"""
calculo = sum(lista) / len(lista)
return calculo
Agora, se você chamar help(media)
, você verá a string de documentação que você escreveu!
Sobre o NoneType
, este é um tipo especial em Python que representa a ausência de um valor. É o tipo de valor que uma função retorna por padrão se não tiver uma instrução de retorno. No seu exemplo, a função 'media' está imprimindo o resultado, mas não está retornando nada, então quando você tenta atribuir o resultado a uma variável, essa variável recebe o valor None
.
Se você quer que a função 'media' retorne o resultado para que você possa usá-lo mais tarde, você deve usar a palavra-chave return
, assim:
def media(lista):
calculo = sum(lista) / len(lista)
return calculo
Agora, se você chamar resultado = media(notas)
, a variável 'resultado' irá armazenar o valor retornado pela função 'media', e não None
.
Espero ter ajudado e bons estudos!