Operador | descrição | exemplo |
== | igual | a == b |
!= | diferente | a != b |
< | menor que | a < b |
> | maior que | a > b |
>= | maior ou igual a | a >= b |
<= | menor ou igual a | a <= b |
Para sentir o funcionamento desses operadores, abra o interpretador interativo do Python e digite esses testes (não vamos mostrar os resultados aqui; faça você mesmo).
>>> a = 1
>>> b = 2
>>> a == 1
>>> a == 2
>>> a == b
>>> 2 == b
>>> a != b
>>> a != 1
>>> a < b
>>> a >= b |
As linhas 1 e 2 não produzem nenhum resultado, como já vimos antes. Elas apenas atribuem valor às variáveis a e b. A linha 3 parece um pouco com a linha 1, mas significa algo completamente diferente. Aqui não acontece nenhuma atribuição, apenas uma comparação, que vai gerar um resultado. Um erro bastante comum cometido por quem está aprendendo Python, C ou Java é usar = no lugar de == ao fazer uma comparação (em Basic, por exemplo, o = é usado nos dois casos). Após cada as linhas a partir da linha 3, o interpretador mostrará um número 1 ou 0, para indicar que a comparação é verdadeira (1) ou falsa (0).
Voltando ao comando if, não existe nenhuma lei que force a presença de um operador de comparação na condição do if. A única coisa que interessa é que a expressão que estiver no lugar da condição será considerada falsa se for igual a 0 (zero), uma string vazia, uma lista vazia ou o valor especial None, sobre o qual voltaremos a falar depois. Qualquer valor que não seja um desses será considerado "verdadeiro", e provocará a execução do bloco subordinado ao if. É por isso que os operadores de comparação retornam 0 ou 1 para representar falso ou verdadeiro.
Não é obrigatória a presença de um bloco else após um if. Mas um else só pode existir após um if. E um if pode conter, no máximo, um else. Existe um terceiro comando de bloco relacionado a esses, chamado elif. Ele corresponde à combinação else-if existente em outras linguagens. Assim como o if, cada elif deve ser acompanhado de uma condição que determinará a execução do bloco subordinado. Como todo comando de bloco, a primeira linha do elif deve ser terminada por um sinal de :.
Um if pode ser seguido de qualquer quantidade de blocos elif, e se houver um bloco else ele deverá vir depois de todos os elif. Veja esse fragmento de código, parte de um jogo simples que criaremos no próximo capÃtulo:
if vf == 0:
print 'Alunissagem perfeita!'
elif vf <= 2:
print 'Alunissagem dentro do padrao.'
elif vf <= 10:
print 'Alunissagem com avarias leves.'
elif vf <= 20:
print 'Alunissagem com avarias severas.'
else:
print 'Modulo lunar destruido no impacto.' |
Numa sequencia de if/elif/elif/.../else é garantido que um, e apenas um dos blocos será executado. Fica como desafio para o leitor descobrir como usar o comando elif para corrigir o bug dos gastos iguais, que aparece no programa despdom2.py. A resposta você encontrará no site da Magnet.

» Aprenda a programar - capÃtulo 3 »