10/02/2000
APRENDA A PROGRAMAR - CAPÃTULO 4
Luciano Ramalho 
OcapÃtulo anterior terminou com uma questão no ar. Após estudarmos todas as formas de se usar o comando if, restou o desafio de usar um bloco elif para consertar um pequeno defeito no programa despdom2.py. O bug se manifesta quando os gastos de Ana e Bia são iguais. Nesse caso, o programa escreve na tela:
Em vez de fazer a Bia escrever um cheque de zero reais, o melhor seria tratar esse caso especial. Veja como fazê-lo, usando uma construção if/elif/else (listagem 1). Se você guardou o arquivo despdom2.py da lição anterior, terá muito pouco o que digitar. Abra-o e salve com o nome de despdom3.py. O código é idêntico à versão anterior até a linha 14. Ali, você faz a primeira alteração: o else é substituÃdo por um elif que verifica se Bia gastou menos que a média. As linhas 15 e 16 continuam como antes, mas agora elas só serão executadas se bia < media for verdadeiro. As linhas 17 e 18 são novas, e servem para tratar o caso em que nem ana < media nem bia < media, ou seja, quando não há diferença a ser paga. Agora você pode testar o programa digitando valores diferentes e depois valores iguais para as despesas de Ana e Bia.
Listagem 1
1 # despdom3.py - Calculadora de despesas domesticas
2
3 print 'Balanco de despesas domesticas'
4 ana = float(raw_input('Quanto gastou Ana? '))
5 bia = float(raw_input('Quanto gastou Bia? '))
6 print
7 total = ana + bia
8 print 'Total de gastos: R$ %s' % total
9 media = total/2
10 print 'Gastos por pessoa: R$ %s' % media
11 if ana < media:
12 diferenca = media ana
13 print 'Ana deve pagar: R$ %s' % diferenca
14 elif bia < media:
15 diferenca = media bia
16 print 'Bia deve pagar: R$ %s' % diferenca
17 else:
18 print 'Ana e Bia gastaram a mesma Quantia.'
|
» Somadora infinita »
Copyright © 1999 MAGNET
|