Ver Feed RSS

root@blog:/# chmod o+r *

[Curso de Python] Estruturas if, else e elif

Avalie este Post de Blog

Antes de prosseguir leia os artigos anteriores aqui



Ok pessoal, vamos começar a complicar um pouco as estruturas condicionais!

Ifs Elses



Às vezes somente o if não é o suficiente, precisamos também do else. Mas o que seria o else? Else é a palavra em inglês para "senão". Então a estrutura if/else é uma adaptação da lógica se/senão, algo mais ou menos assim:

Código :
se leitores > 0:
  faz uma coisa
senão:
  faz outra coisa
Somente um dos ois blocos será executado. Caso leitores > 0 o bloco "faz uma coisa" será executado, caso contrário, o bloco "faz outra coisa" será executado. Nunca, em hipótese alguma os dois blocos serão executados. Vamos a um exemplo:

Código :
leitores = int(raw_input("Quantos leitores ainda tenho: "))
if leitores > 0:
    print 'Vou continuar postando!'
else:
    print 'Não vou mais postar!!'

Elifs?!?!



Em alguns casos precisamos de mais de um estrutura de ifs e acabamos criando um if dentro do outro, o que muitas vezes pode complicar o código. Esse tipo de "junção" de ifs é chamado de if aninhados (nested ifs). Vamos ver um exemplo:

Código :
numero = int(raw_input("Por favor, insira um número:"))
if numero > 0:
    print 'Você digitou um número positivo!'
else:
    if numero < 0:
        print 'Você digitou um número negativo'
    else:
        print 'Você digitou zero!'
Como podermos isso pode complicar e muito o nosso código. Para simplificar isso temos o elif que é a junção de um else com um if. Ele funciona da seguinte forma:

Código :
numero = int(raw_input("Por favor, insira um número:"))
if numero > 0:
    print 'Você digitou um número positivo!'
elif numero < 0:
    print 'Você digitou um número negativo'
else:
    print 'Você digitou zero!'
Muito mais limpo certo?? A estrutura de if/elif/else só tem 2 restrições:

  1. Deve começar com um if, isto é, não podemos começar com um elif e muito menos com um else;
  2. Só pode ter um ou nenhum else na estrutura, isto é, o else não é obrigatório, mas caso ele seja usado, só pode constar uma unica vez na estrutura;

Em suma, depois do if primordial podemos colocar quantos elifs quisermos e acabar a estrutura assim. Caso seja necessário podemos utilizar um, e apenas um, else.

Ok, por hoje é só! No próximo post vamos ver if/else de unica linha e, conseqüentemente, atribuições condicionais!
Até mais...

Atualizado 19-09-2010 em 15:52 por Magnun

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

Comentários

  1. Avatar de lord4rk
    Mais uma vez muito bom Magnun!!
    Ah e obrigado por esclarecer as duvidas!!

    Que a força estja com vc!!

    []'s
    Jr.
  2. Avatar de Magnun
    Disponha cara!! Como sempre digo, se precisar de ajuda (em projetos ou estudos) estou ai!!
  3. Avatar de EmanuelSan
    Não sei quase nada de Python, mas acho que o último código falta um ":" depois da palavra "else" e na segunda restrição deve ser explicitado que o "else" é opcional e aparece apenas no final da estrutura. Acho que ficaria melhor se colocasse com 3 restrições, retirando o parágrafo seguinte com um resumo.
  4. Avatar de Magnun
    Realmente, esqueci os dois pontos e também esqueci de citar que o else é sempre no final. Já a questão dele ser opcional eu falei. Mas um exemplo vale mais que mil palavras certo?!

    Proximo post adiciono mais exemplos sobre isso! Obrigado!
  5. Avatar de woiski
    Magnun, na seção [B]Elisfs[/B]?!?! (deveria ser Elifs?) e na anterior, existe algum problema de codificação no código, pois está expondo a informação sobre a fonte:
    [FONT=Courier New]numero = int etc.
    Atualizado 19-09-2010 em 15:54 por Magnun
  6. Avatar de Magnun
    Olá Wolski, obrigado por avisar do ero do "elisfs". Agora essa informação de fonte... Isso não estava ai antes! Ta com cara de bug no portal da underlinux. Apaguei , vamos ver se não volta a aparecer.

    Novamente obrigado e até a próxima...
  7. Avatar de fabraga
    E assim a vida vai seguindo...
  8. Avatar de tony130666
    Problemas de /FONT sumiu...

+ Enviar Comentário