Opa, nesse caso, segue um gabarito que vou comentar? Uma solução possível é:
# -*- coding: UTF-8 -*-
def soma(numero1, numero2):
resultado = numero1 + numero2
return resultado
def subtracao(numero1, numero2):
resultado = numero1 - numero2
return resultado
def multiplicacao(multiplicador, numero):
resultado = multiplicador * numero
return resultado
def divisao(divisor, numero):
resultado = numero / divisor
return resultado
def menu():
escolha = ''
while(escolha != '0'):
print '[1] para soma'
print '[2] para subtração'
print '[3] para multiplicação'
print '[4] para divisão'
print '[0] FINALIZAR PROGRAMA'
escolha = raw_input()
if(escolha == '1'):
print 'Digite o primeiro número para soma'
numero1 = raw_input()
numero1 = float(numero1)
print 'Digite o segundo número para soma'
numero2 = raw_input()
numero2 = float(numero2)
resultado = soma(numero1, numero2)
print 'O resultado da soma é %s ' % (resultado)
if(escolha == '2'):
print 'Digite o primeiro número para substração'
numero1 = raw_input()
numero1 = float(numero1)
print 'Digite o segundo número para substração'
numero2 = raw_input()
numero2 = float(numero2)
resultado = subtracao(numero1, numero2)
print 'O resultado da subtração é %s ' % (resultado)
if(escolha == '3'):
print 'Digite o multiplicador'
multiplicador = raw_input()
multiplicador = float(multiplicador)
print 'Digite o número que será multiplicado'
numero = raw_input()
numero = float(numero)
resultado = multiplicacao(multiplicador, numero)
print 'O resultado da multiplicação é %s ' % (resultado)
if(escolha == '4'):
print 'Digite o divisor'
divisor = raw_input()
divisor = float(divisor)
print 'Digite o número que será dividido'
numero = raw_input()
numero = float(numero)
resultado = divisao(divisor, numero)
print 'O resultado da divisão é %s ' % (resultado)
menu()
Primeiro, veja que cada operação foi materializada através de uma função como soma
, subtracao
, etc.
Para eu somar eu preciso de dois números, certo? A mesma coisa para subtrair. É por isso que as duas funções recebem dois parâmetros. Eu chamei de numero1 e numero2, mas poderiam ser qualquer outro nome, mas o que deve ficar claro é que a função soma e subtração precisam de dois parâmetro e é assim que indicamos quantos parâmetros a função precisa.
Então, se você fosse a função soma e eu te pedisse para realizar a soma? Eu precisaria te chamar e ainda passar os dois número de que você precisa para que você consiga realizar a operação. Certo? No final, depois de você pensar com os dois números que dei, o que você vai me retornar, isto é, qual será sua resposta? Se eu te passei 10 e 20 e é uma soma, você vai me retornar 30!
É por isso que dentro da sua função, você pode ter quantas variáveis quiser, mas você precisa indicar através da instrução return
qual variável será devolvida pela função. Uma função pode devolver um valor, mas se tivermos várias variáveis declaradas dentro da função, como ele vai saber qual devolver? Por que tem que devolver? Porque variáveis declaradas dentro de uma função, só existem dentro dela, é o que chamamos de escopo da função. POr exemplo, dentro da função soma
, eu criei uma variável chamada resultado
que guarda a soma dos dois números passados como parâmetro. E veja que é ela que deu return
.
E dai? Agora quem chamar a função pode fazer assim:
# exemplo, não está no código acima
resultado_da_soma = soma(10,30)
print resultado_da_soma # imprime 40
No exemplo acima, chamei a função soma passando 10 e 30 e ele me devolveu (você sempre pega o return criando uma variável à esquerda da chamada da função) 40 e guardei na variável resultado_da_soma, que aliás poderia ser qualquer nome.
No código que dei como exemplo, eu usei dentro de soma a variável resultado
e também na hora que chamo a soma com os dados que você entrou também usei a variável resultado
. Apesar de serem variáveis de nomes iguais, a primeiro só existe dentro da função e não é enxergada fora dela. Foi através do return que a outra variável retorno
guardou o valor da variável retornada pela função.
Essas questões a gente vê no curso de lógica. Espero ter ajudado um pouco mais com esse curso relâmpago de lógica de programação.
Abraço bom estudo e boa prova!