Buscar

ELP11 Aula 4 Estrutura de repeticao While

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Repetição em Python: 
Laços while
ELP11 – Linguagem de Programação I
Prof. José Osório
IFSP – Campus Pirituba 
Repetição é a alma da computação
Veremos hoje:
• Revisão do if
• Correção do questionário avaliativo
• Comando while
• Comandos break e continue
• Exercícios
Revisão - if e blocos
if Condição:
comando 1 dentro do if
comando 2 dentro do if
comando fora do if
• Depois da condição tem ':'
• Os comandos dentro do if são deslocados para a direita, ou 
indentados
• O primeiro comando não indentado, ou seja, alinhado com o if, 
está fora do if e marca o fim do bloco.
• Esse formato vale também para o else e o elif
Correção do questionário avaliativo
• Vamos ver diretamente no questionário.
Calcule a soma dos números de 1 a 10
Fácil:
soma = 1+2+3+4+5+6+7+8+9+10
Resolvido em uma linha.
OK, então calcule a soma dos números de 1 a 100.
Precisamos de algo melhor.
Introduzindo laços while (enquanto)
i = 1 # Inicialização
soma = 0
while i <= 10: # ENQUANTO i <= 10, executa abaixo
print(f'Somando {i}')# Corpo do while
soma = soma + i;
i = i + 1 # Atualização da variável de controle
print(f'A soma de 1 a 10 é {soma}') #Saiu do while
• ENQUANTO a condição for satisfeita, executa os comandos indentados.
• Testa a condição ANTES do laço
• Termina o laço quando a indentação vai para a esquerda. Linhas vazias não 
contam.
• Laços while são muito usados
• Note como as variáveis soma e i realmente variam.
Início
Fluxograma –
comando while Preparação
Condição
FIM
Bloco ou 
comando
Verdadeira
Falsa
Só 10? Quero mais genérico.
limite = int(input('Digite o limite da soma: '))
i = 1 # Inicialização
soma = 0
while i <= limite: # ENQUANTO True, executa abaixo
print(f'Somando {i}') # Corpo do while
soma = soma + i;
i = i + 1 # Atualização da variável de controle
print(f'A soma de 1 a {limite} é {soma}') #Saiu do while
Usando o while para perguntar várias vezes
ao usuário
prompt = ('\nDiga-me algo que eu repito. '
'Tecle "sair" para encerrar: ')
mensagem = ''
while mensagem != 'sair':
mensagem = input(prompt)
print(mensagem)
print('Fim')
Aninhamento: 
comandos dentro de comandos
• Os comandos que tem blocos, como if, else e while, podem ser 
aninhados, ou seja, um colocado dentro do outro
• Já tínhamos visto if dentro de if.
• Podemos também ter um if dentro de um while, ou um while dentro 
de if, ou dentro de um else.
• While dentro de while também é comum.
• O poder da computação vem desses aninhamentos.
Deixando o usuário decidir quando sair
• No exemplo anterior, a mensagem 'sair' também é impressa. E se não 
quisermos imprimir 'sair'? É fácil resolver o problema com um if:
prompt = ('\nDiga-me algo que eu repito. '
'Tecle "sair" para encerrar: ')
mensagem = ''
while mensagem != 'sair':
mensagem = input(prompt)
if mensagem != 'sair'
print(mensagem)
Usando uma flag (bandeirinha)
• Programas podem querer terminar por diversas condições
• Essas condições podem aparecer em pontos diferentes do laço while
• Testar todas as condições no while pode ser trabalhoso
• Podemos usar uma variável para armazenar se o while deve terminar 
ou não.
• Aí o while pode testar somente esta variável.
Usando uma flag – exemplo
prompt = ('\nDiga-me algo que eu repito. '
'Tecle "sair" para encerrar: ')
ativo = True # Esta é nossa flag
while ativo:
mensagem = input(prompt)
if mensagem == 'sair':
ativo = False # Levanta a bandeirinha
else:
print(mensagem)
Usando break para sair de um laço
• Você pode sair imediatamente de um laço while usando o comando 
break.
prompt = ('\nDiga-me algo que eu repito. '
'Tecle "sair" para encerrar: ')
while True:
mensagem = input(prompt)
if mensagem == 'sair':
break
else:
print(mensagem)
Início
Condição
FIM
Comando de outras 
linguagens: do-while.
Python não tem.
PreparaçãoPreparação
Comandos
Verda
deira
Falsa
Testa a condição no 
final do laço
Usando break para testar a condição no fim 
do laço while
• Python não tem do-while, mas você pode usar if...break para terminar 
um laço no seu final
while True:
...
if condição:
break
print('fim')
Usando continue para "cortar caminho"
• continue, no corpo de um laço, volta ao início do laço para testar a 
condição e, se verdadeira, executar a próxima iteração. O continue
pula todo o final do while.
• Exemplo: contar de 1 a 10, mas imprimindo só os números ímpares:
n_atual = 0
while n_atual < 10:
n_atual = n_atual + 1
if n_atual % 2 == 0:
continue
print(n_atual)
print('fim')
Evitando laços infinitos
• Todo programador um dia vai cometer um erro e seu programa vai 
cair num laço infinito. Chamamos isso de "entrar em loop".
• Pressione Ctrl-C se seu programa não sair normalmente.
• Teste bem a condição do seu while para não cair em laços infinitos.
Iteração ou repetição – manual do usuário
• while é um laço. Em inglês, loop. Outro tipo de laço é o for, que veremos
depois
• Cada execução do laço se chama iteração.
• Pense primeiro no interior do laço. Lá vai ficar o coração do seu algoritmo: 
como você vai construir o resultado desejado a cada iteração. No caso, é a 
linha: soma = soma + i
• Em seguida, pense na sua variável de controle e como ela vai variar a cada 
iteração. No caso, é a linha i = i + 1. Essa parte é fácil, em geral.
• A seguir, decida se vai checar a condição no início do while, ou se vai usar 
break para testar no final ou no meio do laço.
• Depois, considere a condição para a saída do laço. Tem que sair quando 
atingir o ponto exato, ou seja, depois de somar o 10 e antes de somar o 11.
• Por fim, considere a inicialização correta das variáveis antes do laço. Não 
seria correto inicializar i com zero nem soma com um.
Exercícios
• Fazer e entregar, agora durante a aula, o questionário em classe desta 
semana. São só duas questões.

Continue navegando