Capa
Seções
NOTÍCIAS

DOWNLOAD

ANÁLISES

COMPRAS

BOLETIM

WIRED NEWS

IDG NOW!

PC WORLD

AJUDA

COLUNISTAS


 digite + enter


UM PROGRAMA MAIS ESPERTO
Luciano Ramalho

O programa acima é quase útil. Ele calcula a despesa total e a média, mas não responde à pergunta fundamental: quanto Ana tem que pagar a Bia, ou vice-versa? A aritmética envolvida é simples: se Ana gastou menos, ela precisa pagar a Bia um valor igual à diferença entre o que gastou e a média. Gostaríamos que nosso programa funcionasse assim:

Balanco de despesas domesticas

Quanto gastou Ana? 10
Quanto gastou Bia? 20
Total de gastos: R$ 30.0
Gastos por pessoa: R$ 15.0
Ana deve pagar: R$ 5.0

Utilize o comando File > Save As... para salvar o programa despdom1.py como despdom2.py. Agora vamos modificá-lo para fazer o que queremos. Abaixo, o programa final, e a seguir, a explicação de cada mudança que foi feita.

# despdom2.py - Calculadora de despesas domesticas - versao 2

print 'Balanco de despesas domesticas'
ana = float(raw_input('Quanto gastou Ana? '))
bia = float(raw_input('Quanto gastou Bia? '))
print
total = ana + bia
print 'Total de gastos: R$ %s' % total
media = total/2
print 'Gastos por pessoa: R$ %s' % media
if ana < media:
	diferenca = media - ana
	print 'Ana deve pagar: R$ %s' % diferenca
else:
	diferenca = media - bia
	print 'Bia deve pagar: R$ %s' % diferenca

Linha 1: Acrescentamos "versao 2" ao comentário

Linhas 4 e 5: Aqui fazemos a conversão dos resultados de raw_input para float imediatamente, de modo que os valores armazenados na variáveis ana e bia são números, e não strings como antes.

Linha 6: Uma mudança cosmética apenas: acrescentamos uma linha com apenas um print, para deixar na tela uma linha em branco entre as perguntas e os resultados.

Linhas 7: Agora podemos simplesmente somar os valores de ana e bia, que já foram convertidos para float nas linhas 4 e 5.

Linhas 8 a 10: Exibimos o total e processamos a média, como antes.

Linha 11: Apresentamos um novo comando de bloco, o comando if, que pode ser traduzido exatamente como "se". Essa linha diz, literalmente: "se ana < media:". Ou seja, se o valor de Ana for menor que o valor da média, execute o bloco endentado a seguir (linhas 12 e 13). Caso contrário, não execute essas linhas, e passe direto para a linha 14.

Linhas 12 e 13: Calculamos e exibimos quanto Ana deve pagar.

Linha 14: Aqui vemos outro comando de bloco, o else, que pode ser traduzido como "senão". O else só pode existir após um bloco iniciado por if. O bloco que segue o else só é executado quando a condição prevista no if não ocorre. Isso significa que, quando temos um bloco if e um bloco else, é garantido que apenas um dos dois será executado. Nesse caso, as linhas 15 e 16 só serão executadas se o valor de Ana não for menor que a média.

Linhas 15 e 16: Calculamos e exibimos quanto Bia deve pagar.

Experimente um pouco com o programa despdom2.py. O que acontece quando os gastos de Ana e Bia são iguais? Tente responder essa pergunta sem rodar o programa. A chave está na linha 11. Qual é a média quando os gastos são iguais? Tente simular mentalmente o comportamento do computador na execução passo a passo do programa. Dedique alguns minutos a esse desafio, e só então rode o programa com valores iguais para ver se acontece o que você imaginou. MAGNET

» Tudo sobre o if »

Copyright © 1999 MAGNET
Introdução

Rodando programas no IDLE

Navegando pela linha de comando

Testando e ASCII art

Seu primeiro programa interativo

Dissecando o código

Um programa mais esperto

Tudo sobre o if

Copyright© 1996 - 2003 Terra Networks S.A. Todos os direitos reservados. All rights reserved.