Ver Feed RSS

root@blog:/# chmod o+r *

[Curso de Python] A estrutura While

Avalie este Post de Blog

Antes de prosseguir leia os artigos anteriores aqui



Estamos avançando no conteúdo!!! Agora vamos ver algo fundamental para muitos conceitos em Python: O while.

A Estrutura While



A estrutura while (enquanto) ou loop while, como também é chamado, tem como objetivo repetir a execução de um bloco de código enquanto uma certa condição é valida. A sua estrutura é a seguinta:

Código :
while condição:
    #Bloco de código
O bloco de código dentro do while vai ser executado múltiplas vezes, de acordo com o "valor" da condição. Enquanto a condição for True, o bloco será executado, quando a condição for False, o bloco não será mais executado. Vamos a um pequeno exemplo:
Código :
contador = 3
while contador != 0:
    print "%i..."%(contador)
    contador = contador - 1
print 'Boom!!!'
Executando temos a seguinte saída:
Código :
3...
2...
1...
Boom!
Nesse pequeno exemplo fizemos uma contagem regressiva de 3 até 0 (Boom!!!). Vamos analisar como o interpretador Python executou esse trecho de código:

  1. Primeiro criou a variável contador e atribuiu o valor 3 a ele;
  2. Entrou no loop while;
  3. Verificou que o contador (agora com o valor 3) era diferente de 0;
  4. Imprimiu "3..."
  5. Decrementou o contador por 1;
  6. Chegou ao fim do bloco, agora irá testar novamente a condição de contador !=0;
  7. Verificou que o contador (agora com o valor 2) era diferente de 0;
  8. Imprimiu "2..."
  9. Decrementou o contador por 1;
  10. Chegou ao fim do bloco, agora irá testar novamente a condição de contador !=0;
  11. Verificou que o contador (agora com o valor 1) era diferente de 0;
  12. Imprimiu "1..."
  13. Decrementou o contador por 1;
  14. Chegou ao fim do bloco, agora irá testar novamente a condição de contador !=0;
  15. Verificou que o contador (agora com o valor 0) é igual a 0, logo não satisfaz a condição;
  16. Saiu do loop while"
  17. Imprime 'Boom!!!';


O while tem 2 caracterícas que devem ser ressaltadas:

  • Ele verifica a condição ao entrar no loop;
  • Quando a condição não é satisfeita ele não executa o loop uma última vez;


Esse código abaixo mostra que ele analisa a condição antes de entrar no loop:
Código :
contador = 0
while contador != 0:
    print "%i..."%(contador)
    contador = contador - 1
print 'Boom!!!'
Executando esse código temos a seguinte saída:
Código :
Boom!!!
As condições que podem ser utilizadas dentro do while são todas aquelas que eu já expliquei anteriormente aqui.

Para quem ainda acompanha meus posts deixo alguns exercícios:

  1. Faça um programa que calcule a multiplicação de dois números utilizando apenas o operador de soma. Dica: A multiplicação uma sequência de somas: 3*5 é equivalente a 5+5+5 (três vezes o cinco) ou 3+3+3+3+3 (cinco vezes o três).
  2. Faça um programa que receba vários números e ao receber o número 0 informe quantos números foram informados.


Até mais...

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

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

Comentários

Página 3 de 3 PrimeiroPrimeiro 123
  1. Avatar de icaromacedo
    Olá Magnum,
    Obrigado por compartilhar o seu conhecimento! Sei que já faz algum tempo que começou este seu tutorial sobre python . Um grande amigo meu chamado Shander me indicou o seu tutorial ele sempre debatendo nos foruns sobre python.

    Estou extremamente feliz com a linguagem e mais ainda com um professor de alta qualidade.

    Obg mais uma vez e segue o meu primeiro execercio.

    #-*- coding: utf-8 -*-


    try:
    numero1 = int(raw_input('Digite o primeiro numero: '))
    numero2 = int(raw_input('Digite o segundo numero: '))
    soma = 0
    contador = numero1

    while contador != 0:
    soma += numero2
    contador -= 1

    print 'A mutiplicação de %s * %s = %s' % (numero1, numero2, soma)


    Segundo exercicio:
    try:
    numero = int(raw_input('digite um numero: '))
    contador = 1

    while numero:
    print numero
    numero = int(raw_input('Novamente: '))
    contador += 1


    print 'Você digitou %s vezes e finalizou o comando com a tecla 0' % contador


    except:
    print 'Erro: campo vazio, por favor digite um numero...'
  2. Avatar de Magnun
    Olá Icaro! Seja bem vindo. Bem, o curso de Python anda meio parado, mas como vc ainda ta na aula de while tem bastante coisa pra ler. Fico feliz de saber que meu material está sendo indicado.

    Obrigado pelos elogios mas não sou tão bom assim . Se estiver interessado em desenvolver algum projeto e etc saiba que estou sempre a disposição para ajudar (contanto que seja openSource). Ou se quiser ajudar em alguns projetos meus projetos é só entrar em contato.

    Até mais..
  3. Avatar de icaromacedo
    Obg Magnum!! Quem sabe assim que eu terminar os seus tutoriais e ler mais alguns livros e entender mais de OO, acho que poderei ajudar em algo por enquanto sou iniciante sem chance, huahuahua. Quanto a projetos espero sim fazer alguns opensource. Abraços. Nem comentou sobre o meu codigo se é isso mesmo. kkkkkkkkkkkkkk
  4. Avatar de Magnun
    Opa, ícaro! Foi mal, realmente esqueci de comentar. Infelizmente seu código não apareceu endentado, mas vou considerar que toda a endentação está correta.

    No seu primeiro exercício o try está incompleto. Todo Try tem que ter um except. Mas se adicionar um except simples ele funciona perfeitamente.

    O Segundo exercício também está correto. Parabéns!

    Quando estiver pronto para um projeto é só entrar em contato! Até mais...
  5. Avatar de theusseveen
    Olá, estou um pouco atrasdo =]
    mas como comecei o curso do começo agora, resolvi tentar o exercicio, aqui funcionou assim

    contador = 0
    contar = 0
    while contador < 10:
    contador = contador + 1
    num = int(raw_input("Digitar número ="))
    if (num == 0):
    print "numero de numeros digitados até agora",contador
  6. Avatar de fabraga
    Magnun, eu não encontrei onde você postou os resultados desses seus exercícios. O que eu encontrei, na sua aula seguinte, foi a correção de outros exercícios que nem vi onde vc os colocou...
    Atualizado 07-06-2011 em 16:39 por fabraga
  7. Avatar de fabraga
    Quanto ao problema do silvanofideles, acho que é porque ele está usando uma versão mais recente to Python, que não reconhece o "print" sem os parênteses.
    Atualizado 07-06-2011 em 16:40 por fabraga
  8. Avatar de Follks
    Muito bom Magnun, ótimos artigos.


    [CODE]n = 0
    while n == 0:
    try:
    n1 = int(raw_input("Digite o primeiro valor:"))
    n2 = int(raw_input("Digite o segundo valor:"))
    contn2 = n2
    cont = n1
    n = 1
    except:
    print "Ops... algo errado..."


    if n1 > 0:
    while cont > 1:
    n2 = n2 + contn2
    cont = cont - 1
    print "------------------ resultado:",n2
    else:
    print "----- Digite um valor maior que 0 ------"
    [/CODE]
Página 3 de 3 PrimeiroPrimeiro 123

+ Enviar Comentário