Laços e Listas
Vai repetir a declaração? Laço nela...
Como tarefas repetitivas em um programa podem ser automatizadas com o uso de laços. Também serão introduzidos os objetos listas para o armazenamento e processamento de coleções de dados com ordem específica. Laços e listas junto com o tópico anterior, consistem na base fundamental para o resto do curso.
Tabelas
Faça uma tabela com graus Celsius e seus correspondentes graus Fahrenheit
-20 -4.0
-15 5.0
-10 14.0
-5 23.0
0 32.0
5 41.0
10 50.0
15 59.0
20 68.0
25 77.0
30 86.0
35 95.0
40 104.0
Como um programa escreveria na saída tal tabela?
Fazendo uma tabela
A solução simples
Sabemos como fazer uma linha na tabela:
C = -20
F = 9.0/5*C + 32
print C, F
Podemos, simplesmente, repetir a declaração:
C = -20; F = 9.0/5*C + 32; print C, F
C = -10; F = 9.0/5*C + 32; print C, F
...
C = 35; F = 9.0/5*C + 32; print C, F
C = 40; F = 9.0/5*C + 32; print C, F
- Muito tedioso de escrever, e fácil de errar.
- Quando programar se torna tedioso, existe, normalmente uma construção que automatiza a escrita!
- O computador é muito bom em fazer tarefas repetitivas.
- Para isso, usamos os laços.
Laço while
O laço while
torna possível repetir tarefas quase semelhantes.
Um laço while
repete um conjunto de declarações enquanto uma condicional for verdadeira.
while condição:
- declaração 1 -
- declaração 2 -
...
- primeira declaração após o laço -
- Todas as declarações em um laço devem ser indentadas!
Tabela com o laço while
print '------------------' ## cabeçalho da tabela
C = -20 ## valor inicial para C
dC = 5 ## incremento de C no laço
while C <= 40: ## cabeçalho do laço com a condicional
F = (9.0/5)*C + 32 ## 1a declaração do laço
print C, F ## 2a declaração do laço
C = C + dC ## Última declaração do laço
print '------------------' ## linha final da tabela
Fluxo do programa em um laço while
Vamos simular o laço while
na mão:
- Primeiro
C
é -20, $ -20 \leq 40 $ é verdade, então executamos as declarações do laço. - Calculamos
F
, visualizamos oprint
, e atualizamosC
para -15. - Voltamos para a linha do
while
, avaliamos $ C \leq 40 $, que é verdade, então vamos a uma nova rodada do laço. - Continuamos assim até que o
C
seja atualizado para 45. - Agora a condição do laço $ 45 \leq 40 $ é falsa, e o programa pula para a primeira linha após o laço, e o laço termina.