Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Criação de funções

Boa tarde,

Qual a razão do termo lista ter aparecido nesse bloco de código ?

def media (lista): calculo = sum(lista) / len(lista) print(calculo)

A intenção do programador foi colocar uma lista como parâmetro, certo? Como o interpretador Python entende que 'lista' é uma lista? Não deveria estar escrito 'list' para que o computador possa fazer o link entre o parâmetro da função e o 'parâmetro futuro'? Por qual razão o interpretador não pensou que o parâmetro 'lista' não era, na verdade, um dicionário?

É possível criar textos de ajuda em funções que nós criamos? Exemplo: help(media). E o Nontype? Existe alguma função que pega esse 'tipo' e transforma em outro?

Obrigado!

2 respostas
solução!

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!

Obrigado pela resposta, ajudou bastante!