[Curso de Python] Mais um pouco sobre if/elif/else
por
em 26-11-2009 às 08:29 (15733 Visualizações)
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!
Como podem ver o Python sempre acusa erro de sintaxe caso o if não venha 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!' ... >>>
2° Ponto - Os elifs e o else não é obrigatório:
3° Ponto - Podemos ter quantos Elifs quisermos: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 >>>
4° Ponto - O Else sempre deve estar no final da estrutura if/elif/else: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 >>>
5° Ponto - O Else é opcional: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 >>>
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' ... x esta acima de 9 >>>
Como podem ver, nada foi impresso!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' ... >>>
Comentários
+ Enviar Comentário