Ver Feed RSS

root@blog:/# chmod o+r *

[Curso de Python] Mais um pouco sobre if/elif/else

Avalie este Post de Blog

Antes de prosseguir leia os artigos anteriores aqui



Continuando nossa sequência de posts sobre condições, controle de fluxo e if/elif/else.

Mais um pouco sobre If/Elif/Else



Nos comentários no meu último post nosso colega EmanuelSan pediu para que eu frisasse alguns pontos sobre a estrutura if/elif/else por meio de exemplos, para que ficasse mais claro para todos. Vamos lá...

1° Ponto - O if sempre vem primeiro!
Código :
>>> x = 10
>>>
>>> elif x == 0:
  File "<stdin>", line 1
    elif x == 0:
       ^
SyntaxError: invalid syntax
>>>
>>> else:
  File "<stdin>", line 1
    else:
       ^
SyntaxError: invalid syntax
>>> if x == 0:
...  print 'x e zero!'
...
>>>
Como podem ver o Python sempre acusa erro de sintaxe caso o if não venha primeiro.

2° Ponto - Os elifs e o else não é obrigatório:
Código :
>>> x = 10
>>> if x > 0:
...  print 'positivo'
...
positivo
>>>
>>> if x > 0:
...  print 'positivo'
... else:
...  print 'negativo'
...
positivo
>>>
>>> if x > 0:
...  print 'positivo'
... elif x == 0:
...  print 'zero'
... else:
...  print 'negativo'
...
positivo
>>>
3° Ponto - Podemos ter quantos Elifs quisermos:
Código :
>>> x = 10
>>> if x < 0:
...  print 'x e negativo!'
... elif x == 0:
...  print 'x e zero!'
... elif x < 10:
...  print 'x esta entre 1 e 9'
... else:
...  print 'x esta acima de 9'
...
x esta acima de 9
>>>
4° Ponto - O Else sempre deve estar no final da estrutura if/elif/else:
Código :
>>>
>>> if x < 0:
...  print 'x e negativo!'
... else:
...  print 'vai dar erro'
... elif x == 0:
  File "<stdin>", line 5
    elif x == 0:
       ^
SyntaxError: invalid syntax
>>>
5° Ponto - O Else é opcional:
Código :
>>> x = 10
>>> if x < 0:
...  print 'x e negativo!'
... elif x == 0:
...  print 'x e zero!'
... elif x < 10:
...  print 'x esta entre 1 e 9'
... elif x >= 10:
...  print 'x esta acima de 9'
...
x esta acima de 9
>>>
Já aviso que essa abordagem do else ser opcional é perigosa! Se você esquecer de considerar algum valor ele não vai entrar em nenhum if/elif. No exemplo abaixo vou mudar apenas o sinal >= por > no exemplo abaixo, dessa forma o 10 não se encaixará em nenhuma condição:
Código :
>>> x = 10
>>> if x < 0:
...  print 'x e negativo!'
... elif x == 0:
...  print 'x e zero!'
... elif x < 10:
...  print 'x esta entre 1 e 9'
... elif x > 10:
...  print 'x esta acima de 9'
...
>>>
Como podem ver, nada foi impresso!

Atualizado 01-09-2010 em 09:15 por Magnun

Categorias
Python , Artigos , Artigos , Cursos , Curso de Python

Comentários

  1. Avatar de fabraga
    Um comentário aqui finalmente!! =)

    Só pra registrar que eu ainda estou acompanhando...

    Ficou muito bem mastigado essa estrutura do if/elif/else.
    Para não ficar dúvidas!
  2. Avatar de fabraga
    Por que meu avatar não aparece? Já tem até foto no meu perfil desde ontem!
    Mas no avatar continua sem... :(
  3. Avatar de tony130666
    Me too... Estou de volta. Aqui se aprende bem mais fácil.

+ Enviar Comentário