Enviar um café pro programador

Função chamando Função em Python

Neste tutorial de nossa apostila de Python, vamos resolver mais uma questão sobre funções em Python.

Leia também:


Função invocando Função em Python

O exercício abaixo faz parte da lista de questões de funções:
Faça um script Python com uma função que necessite de três argumentos, e que forneça a soma desses três argumentos através. Seu script também deve fornecer a média dos três números, através de uma segunda função que chama a primeira.

Vamos chamar de x, y e z os três números que o usuário vai fornecer e passar para a função soma().
Dentro dela, armazenamos o valor da soma na variável res (de resultado) e retornamos esse valor:

def soma(x,y,z):
    res = x + y + z
    return res

Agora, na função media(), também recebe estes três argumentos x, y e z.
Usamos a função soma() para calcular a soma deles, dentro da função media() mesmo, sem problemas, e armazenamos o valor da soma na variável som que então é dividida por 3 e armazenada na variável med (de média), e então retornamos essa variável:

def media(x,y,z):
    som = soma(x,y,z)
    med = som/3
    return med

Por fim, criamos uma função menu(), com que é invocada infinitamente, que fica pedindo os três números ao usuário, mostrando a soma e a média.

Nosso código completo fica:

def soma(x,y,z):
    res = x + y + z
    return res

def media(x,y,z):
    som = soma(x,y,z)
    med = som/3
    return med

def menu():
    x = int(input('Primeiro numero: '))
    y = int(input('Segundo numero : '))
    z = int(input('Terceiro numero: '))

    print('Soma: ', soma(x,y,z))
    print('Media:', media(x,y,z))

while True:
    menu()




Otimizando um código Python

O exemplo dado acima está bem didático, passo a passo, para melhor entendimento de vocês.
Porém, a medida que formos estudando, fazendo programas e scripts, podemos ir enxugando o código, ou seja, escrevendo cada vez menos, usando menos variáveis etc.

Ou seja, otimizando. Fazer a mesma coisa, mas gastando menos memória, menos processamento e menos linha, assim também economizamos tempo.

Na função soma, não precisamos criar a variável res. Podemos dar returno direto com o valor (x+y+z).

A função media, ao invés de receber três argumentos, pode diretamente receber só o valor da soma.

E o argumento que passamos pra ela, da soma? Ué, chamamos a função soma direto:
media ( soma(x,y,z)  )

E dentro dessa função media() não precisamos das variáveis som e med, podemos dar um returno direto.

Nosso código, mais limpo, fica assim:

def soma(x,y,z):
    return (x + y + z)

def media(num):
    return num/3

def menu():
    x = int(input('Primeiro numero: '))
    y = int(input('Segundo numero : '))
    z = int(input('Terceiro numero: '))

    print('Soma: ', soma(x,y,z))
    print('Media:', media( soma(x,y,z) ))

while True:
    menu()


Nenhum comentário:

Postar um comentário