Leia também:
- Certificado do Curso de Python (para quem deseja trabalhar como programador)
- Conteúdo do Python Progressivo em PDF
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