Buscar

Estruturas de decisão e de repetição em Python

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 69 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 69 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 69 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

DEFINIÇÃO
As estruturas de decisão e repetição em Python. As estruturas de decisão simples e compostas.
As estruturas de repetição com variável de controle e com teste.
PROPÓSITO
Esclarecer as estruturas de decisão e de repetição e as estruturas disponíveis em Python.
PREPARAÇÃO
Antes de iniciar o conteúdo deste tema, instale em seu computador a versão Python 3.7.1. Busque
um tutorial sobre Instalação do Interpretador Python 3 e a IDE PyCharm.
OBJETIVOS
MÓDULO 1
Identificar as estruturas de decisão em Python
MÓDULO 2
Reconhecer a estrutura de repetição com variável de controle em Python
MÓDULO 3
Identificar a estrutura de repetição com teste em Python
MÓDULO 4
Reconhecer as instruções auxiliares de controle de iteração
INTRODUÇÃO
Os primeiros programas que são desenvolvidos em qualquer linguagem normalmente têm a
mesma sequência de instruções a serem executadas. Frequentemente, começamos com um
programa que só exibe na tela uma mensagem, depois recebemos dados do usuário e os
processamos de alguma forma, para depois exibir algum resultado.
Porém, os programas com essas características (mesma sequência de execução sempre,
independentemente dos dados inseridos) são somente os primeiros. O mais comum é que um
programa tenha trechos que são executados e outros trechos que não são, dependendo dos
dados que o usuário inserir. Além desse comportamento condicional, também é comum que os
programas tenham algumas partes do código-fonte que são executadas repetidas vezes, de
acordo com algum critério.
AS LINGUAGENS DE PROGRAMAÇÃO EM
GERAL – E PYTHON ESPECIFICAMENTE –
OFERECEM AS ESTRUTURAS DE DECISÃO E
AS DE REPETIÇÃO PARA FACILITAR A
PROGRAMAÇÃO.
MÓDULO 1
 Identificar as estruturas de decisão em Python
INTRODUÇÃO
Tomamos decisões o tempo todo: ao acordar, escolhemos se vamos levantar ou não. Em seguida,
escolhemos se vamos tomar banho ou escovar os dentes. Poderíamos listar uma infinidade de
situações em que decidimos por A ou B ao longo de um dia. No mundo da computação, os
exemplos são outros.
(Fonte: StunningArt / Shutterstock)
AO PROGRAMAR, VOCÊ PODERÁ UTILIZAR AS
ESTRUTURAS DE DECISÃO PARA SELECIONAR
PARTES DO CÓDIGO-FONTE QUE SERÃO
EXECUTADAS, DE ACORDO COM ALGUMA
CONDIÇÃO.
Menus de escolha e decisões de encerrar o programa ou continuar estão presentes em quase
todas as aplicações profissionais. Pense, por exemplo, nos últimos apps que você instalou no seu
celular. Algum deles é executado sem um menu inicial?
Neste módulo, vamos apresentar as estruturas de decisão simples e compostas em Python.
CONCEITOS
As estruturas de decisão permitem que partes do código-fonte do programa sejam executadas e
outras partes não sejam, dependendo de critérios definidos pelo desenvolvedor. Decidir qual ação
executar, condicionada a algum critério objetivo, é algo que fazemos o tempo todo.
 EXEMPLO
Decidimos, por exemplo, se o banho será quente ou frio. Provavelmente, essa decisão estará
condicionada à temperatura ambiente no momento do banho.
O exemplo do banho e temperatura externa tem apenas uma condição, mas já ilustra como
processos decisivos podem ser feitos. Essas estruturas, no entanto, costumam ser mais
complexas. Em Python, elas podem ser de caminho único ou de caminho duplo. Vamos analisar
cada uma delas a partir de agora.
A ESTRUTURA DE DECISÃO IF
Considere a situação em que você quer informar aos pais se eles devem vacinar seu filho contra a
gripe. A vacinação ocorre para crianças com menos de 5 anos completos. Uma forma possível de
orientar esses pais é:
(Fonte: o Autor)
Observe alguns pontos importantes:
O primeiro passo é perguntar a idade da criança.

A orientação sobre vacinar a criança só será exibida caso a idade seja menor que 5 anos.

A mensagem final de despedida será exibida em todos os casos.
Em Python, a estrutura if permite que haja um bloco de instruções a serem executadas caso uma
condição seja verdadeira. Por isso, ela é chamada de estrutura de caminho único. Em geral, o
formato da estrutura if é:
if <condição>:
Bloco de código que será executado caso condição seja True
Instrução fora do if
Fazendo uma versão do fluxo do programa em Python, antes de programar efetivamente,
poderíamos visualizar esta solução:
(Fonte: o Autor)
Veja uma implementação possível para este nosso exemplo:
(Fonte: o Autor)
Na linha 1, estamos perguntando a idade da criança;
Nas linhas 2 e 3, está a estrutura if, como descrita acima;
O critério para executar a linha 3 é que a condição (da linha 2) seja verdadeira (True), ou
seja, que a idade seja menor que 5;
Na linha 4, está a mensagem de despedida, que será exibida em todos os casos.
Veja agora dois resultados diferentes de execução desse programa:
(Fonte: o Autor)
Nesse caso, só havia uma instrução a ser executada caso a condição fosse verdadeira. Mas nem
sempre será assim.
 ATENÇÃO
É preciso diferenciar o que está dentro do if do conteúdo do que está fora da condicional. Isso é
feito pela indentação.
De acordo com a PEP8 [1], é necessário utilizar 4 (quatro) espaços para deslocar para a direita
todas as instruções que estiverem dentro do if. Dessa maneira, todas as linhas que estiverem com
4 espaços abaixo do if farão parte do bloco que só será executado caso a condição seja
verdadeira. Veja um exemplo na figura a seguir:
(Fonte: o Autor)
No exemplo acima, as linhas 3 e 4 estão dentro do if e só serão executadas caso a condição
(idade < 5) seja verdadeira.
A estrutura if, que acabamos de estudar, não apresenta um caminho alternativo para o caso de a
condição ser falsa. Em outras palavras, caso a condição seja falsa, nada especial será executado.
Para esse outro caso, vamos conhecer a estrutura if-else.
A ESTRUTURA DE DECISÃO IF-ELSE
A ESTRUTURA DE DECISÃO IF-ELSE PERMITE
QUE HAJA UM BLOCO DE INSTRUÇÕES A SEREM
EXECUTADAS CASO A CONDIÇÃO SEJA
VERDADEIRA E OUTRO BLOCO PARA O CASO EM
QUE A CONDIÇÃO É FALSA. POR ISSO,
CHAMAMOS A ESTRUTURA DE CAMINHO DUPLO.
Usando o mesmo exemplo da vacinação, imagine que desejássemos exibir uma mensagem para
o caso em que a criança NÃO é menor de 5 anos. O fluxo pode ser representado como na figura a
seguir:
(Fonte: o Autor)
Em geral, o formato da estrutura if-else é:
if <condição>:
Bloco de código que será executado caso condição seja True
else:
Bloco de código que será executado caso condição seja False
Instrução fora do if
Uma implementação possível está na figura a seguir:
(Fonte: o Autor)
Observe que o bloco 1 (linhas 3 e 4) somente será executado caso a condição seja verdadeira,
enquanto o bloco 2 (linhas 6 e 7) somente será executado caso a condição seja falsa.
ASSIM, É IMPOSSÍVEL QUE OS DOIS BLOCOS SE
ATIVEM. SOMENTE UM DELES SERÁ
EXECUTADO, INDEPENDENTEMENTE DA IDADE
INFORMADA PELO USUÁRIO.
Já a linha 8 será executada em todos os casos, porque está fora do if-else.
Veja agora dois resultados diferentes de execução do programa:
(Fonte: o Autor)
ESTRUTURAS DE DECISÃO ANINHADAS
As estruturas de decisão que vimos (if e if-else) podem ser aninhadas sem limite de quantidade.
MAS O QUE SIGNIFICA ANINHAR
ESTRUTURAS?
SIGNIFICA QUE PODEMOS COLOCAR UMA ESTRUTURA
DENTRO DE OUTRA, COM AS CONDIÇÕES EM
CASCATA.
Voltando ao nosso exemplo da vacinação, suponha que houvesse uma orientação diferente, de
acordo com as opções a seguir:
https://estacio.webaula.com.br/cursos/temas/estruturas_de_decisao_e_de_repeticao_em_python/index.html#collapse-steps1
https://estacio.webaula.com.br/cursos/temas/estruturas_de_decisao_e_de_repeticao_em_python/index.html#collapse-steps1
https://estacio.webaula.com.br/cursos/temas/estruturas_de_decisao_e_de_repeticao_em_python/index.html#collapse-steps1
Crianças menores de 5 anos;
Crianças exatamente com 5 anos;
Crianças maiores de 5 anos.
Poderíamos entender o fluxo do programa como no esquema a seguir:
(Fonte: o Autor)
Como podemos ver na figura acima, o primeiro teste tem a condição (idade < 5);
Caso seja verdadeira, a informação é “a criança deveser vacinada”;
Caso seja falsa (idade maior ou igual a 5), haverá um novo teste, com a segunda condição
(idade = 5);
Caso a segunda condição seja verdadeira (idade igual a 5), a informação é “a vacina estará
disponível em breve”;
Caso a segunda condição seja falsa (idade maior que 5), a informação é “a vacinação só
ocorrerá daqui a 3 meses”;
Em todos os casos, será exibida a mensagem de despedida.
Uma implementação possível para essa solução está na figura a seguir:
(Fonte: o Autor)
Observe que o bloco 1 (linhas 3 e 4) somente será executado caso a primeira condição seja
verdadeira;
Caso a primeira condição seja falsa, ocorrerá o segundo teste;
Assim, o bloco 2 (linhas 7 e 8) somente será executado caso a segunda condição seja
verdadeira;
Caso a segunda condição seja falsa, o bloco 3 será executado (linhas 10 e 11);
Já a linha 12 será executada em todos os casos, porque está fora de todas as estruturas if-
else.
 ATENÇÃO
Um detalhe extremamente importante (e que pode evitar dores de cabeça desnecessárias) é o
uso correto do operador de comparação (==). Lembre que o símbolo de igual (=) é o do operador
de atribuição, com uso totalmente diferente do operador de comparação. Ao usar as estruturas de
decisão, muito provavelmente você estará fazendo testes (comparando valores, deverá usar o
==). Ou seja, tome cuidado para não usar os operadores de forma inadequada.
A ESTRUTURA DE DECISÃO ELIF
Voltando ao exemplo anterior, em que tínhamos três caminhos diferentes, observe que as linhas 5
e 6 têm, em sequência, else (da primeira condição) e if (testando a segunda condição).
 DICA
Nesses casos, uma forma de reduzir o código é utilizar a estrutura elif. Ela presta exatamente a
mesma função, mas permite um código mais limpo e menor.
Em geral, o formato da estrutura elif é:
if <condição 1>:
Bloco de código que será executado caso condição seja True
elif <condição 2>:
Bloco de código que será executado caso condição 1 seja False e condição 2 seja True
else:
Bloco de código que será executado caso condição 1 seja False e condição 2 seja False
Instrução fora do if
Veja uma implementação possível com a estrutura elif:
(Fonte: o Autor)
Perceba que a indentação precisa ser ajustada, uma vez que o último else é relativo ao elif. Por
isso, eles precisam estar alinhados.
CONDIÇÕES COMPOSTAS
Vale ressaltar que as condições dos exemplos deste módulo foram simples, ou seja, apenas um
valor booleano (True ou False). Porém, isso não é regra. É possível utilizar condições compostas,
ou seja, operações com mais de um valor booleano (utilizando o and ou o or, por exemplo).
RESUMO
No vídeo a seguir o professor apresentará um resumo dos principais conceitos abordados no
módulo 1. Assista:
VERIFICANDO O APRENDIZADO
1. CONSIDERE O SEGUINTE TRECHO DE UM PROGRAMA ESCRITO EM
PYTHON:
LADO1 = EVAL(INPUT(‘ENTRE COM O MAIOR LADO DO TRIÂNGULO: ‘))
LADO2 = EVAL(INPUT(‘ENTRE COM O SEGUNDO LADO DO TRIÂNGULO: ‘))
LADO3 = EVAL(INPUT(‘ENTRE COM O TERCEIRO LADO DO TRIÂNGULO: ‘))
IF (LADO1**2 == LADO2**2 + LADO3**2): #CONDIÇÃO1
PRINT(‘O TRIÂNGULO É RETÂNGULO’)
ELIF (LADO1**2 < LADO2**2 + LADO3**2): #CONDIÇÃO2
PRINT(‘O TRIÂNGULO É ACUTÂNGULO’)
ELSE:
PRINT(‘O TRIÂNGULO É OBTUSÂNGULO’)
SUPONHA QUE O USUÁRIO, QUANDO SOLICITADO, TENHA INSERIDO OS
VALORES (NESTA ORDEM): 6, 4 E 3. QUAL SERÁ O RESULTADO?
A) Será impresso na tela ‘O triângulo é retângulo’.
B) Será impresso na tela ‘O triângulo é acutângulo’.
C) Será impresso na tela ‘O triângulo é obtusângulo’.
D) Será lançada uma mensagem de erro, porque a estrutura elif está com erro de sintaxe.
2. CONSIDERE A SEGUINTE TABELA, QUE RELACIONA A TEMPERATURA
EM °C A MENSAGENS QUE DEVEM SER EXIBIDAS AOS USUÁRIOS.
TEMPERATURA AMBIENTE
(EM °C)
MENSAGEM
MAIOR QUE 38
ATIVIDADE FÍSICA NÃO
RECOMENDADA
MAIOR QUE 32 E MENOR OU
IGUAL A 38
ATIVIDADE FÍSICA RECOMENDADA
COM RESTRIÇÕES
MENOR OU IGUAL A 32
ATIVIDADE FÍSICA RECOMENDADA
SEM RESTRIÇÕES
 ATENÇÃO! PARA VISUALIZAÇÃO COMPLETA DA TABELA UTILIZE A
ROLAGEM HORIZONTAL
SUPONHA QUE A TABELA TENHA SIDO TRADUZIDA PARA UM PROGRAMA
EM PYTHON. ASSINALE A OPÇÃO QUE APRESENTA O TRECHO CORRETO
DE CÓDIGO-FONTE PARA REPRESENTAR A TABELA.
A)
if temp > 38:
print('Atividade física não recomendada')
else:
print('Atividade física recomendada com restrições')
A)
B)
if temp > 38:
print('Atividade física não recomendada')
else:
if temp > 32:
print('Atividade física recomendada com restrições')
else:
print('Atividade física recomendada sem restrições')
B)
C)
if temp > 38:
print('Atividade física não recomendada')
else:
print('Atividade física recomendada com restrições')
if temp <= 32:
print('Atividade física recomendada sem restrições')
C)
D)
if temp > 38:
print('Atividade física não recomendada')
if temp > 32:
print('Atividade física recomendada com restrições')
else:
print('Atividade física recomendada sem restrições')
D)
GABARITO
1. Considere o seguinte trecho de um programa escrito em Python:
lado1 = eval(input(‘Entre com o maior lado do triângulo: ‘))
lado2 = eval(input(‘Entre com o segundo lado do triângulo: ‘))
lado3 = eval(input(‘Entre com o terceiro lado do triângulo: ‘))
if (lado1**2 == lado2**2 + lado3**2): #condição1
print(‘O triângulo é retângulo’)
elif (lado1**2 < lado2**2 + lado3**2): #condição2
print(‘O triângulo é acutângulo’)
else:
print(‘O triângulo é obtusângulo’)
Suponha que o usuário, quando solicitado, tenha inserido os valores (nesta ordem): 6, 4 e
3. Qual será o resultado?
A alternativa "C " está correta.
As estruturas if e elif do trecho de código testam a relação entre os valores lado1 ao quadrado e a
soma lado2 ao quadrado mais lado3 ao quadrado. Para os valores inseridos pelo usuário, temos a
comparação de 36 (6 ao quadrado) e 25 (4 ao quadrado + 3 ao quadrado). Assim, a condição1 é
falsa (36 == 25? Não. Condição FALSA). Com isso, é testada a condição2, que também é falsa
(36 < 25? Não. Condição FALSA). Logo, o fluxo do programa vai para o else do elif, que
representa a impressão da frase O triângulo é obtusângulo.
2. Considere a seguinte tabela, que relaciona a temperatura em °C a mensagens que devem
ser exibidas aos usuários.
Temperatura ambiente (em °C) Mensagem
Maior que 38 Atividade física não recomendada
Maior que 32 e menor ou igual a 38 Atividade física recomendada com restrições
Menor ou igual a 32 Atividade física recomendada sem restrições
 Atenção! Para visualização completa da tabela utilize a rolagem horizontal
Suponha que a tabela tenha sido traduzida para um programa em Python. Assinale a opção
que apresenta o trecho correto de código-fonte para representar a tabela.
A alternativa "B " está correta.
Para representar a tabela, é necessário ter três faixas de valor. Com isso, a opção (A) é
descartada.
A opção (B) apresenta as estruturas if-else implementadas corretamente e de acordo com a
tabela.
A opção (C) apresenta duas estruturas de decisão independentes, um if-else seguido de um if.
Com isso, são feitos dois testes, o que pode levar a resultados diferentes do que a tabela indica.
Por exemplo: caso a temperatura seja menor ou igual a 32, a condição do if-else é falsa, o que
leva à impressão da frase “Atividade física recomendada com restrições”. Porém, a condição do if
é verdadeira, o que leva à impressão da frase “Atividade física recomendada sem restrições”.
Seriam, então, impressas duas frases.
A opção (D) também apresenta duas estruturas de decisão independentes, um if seguido de um
if-else. Com isso, são feitos dois testes, o que pode levar a resultados diferentes do que a tabela
indica. Por exemplo: caso a temperatura seja maior que 38, a condição do if é verdadeira, o que
leva à impressão da frase “Atividade física não recomendada”. Porém, a condição do if-else
também é verdadeira, o que leva à impressão da frase “Atividade física recomendada com
restrições”. Seriam, então, impressas duas frases.
MÓDULO 2
 Reconhecer a estruturade repetição com variável de controle em Python
INTRODUÇÃO
Na nossa vida cotidiana, é comum executarmos ações repetidas para uma lista de itens. Por
exemplo: ao fazer compras, percorremos toda a lista para verificar se cada item dela foi realmente
colocado no carrinho.
(Fonte: wavebreakmedia / Shutterstock)
Outro exemplo é a verificação de itens para sairmos de casa: carteira, celular e chave. Passamos
mentalmente por essa lista e verificamos, item a item, se já o pegamos.
Neste módulo, você vai conhecer a estrutura de repetição com variável de controle. Essa estrutura
permite executar ações repetidas, como os exemplos, para cada item de uma lista.
CONCEITOS
As estruturas de repetição permitem que partes do código-fonte do programa sejam executadas
repetidamente, até que alguma condição indique que essa repetição deve ser interrompida.
Neste módulo, a repetição – também chamada de laço – será controlada por uma variável. Ou
seja, uma variável indicará se o laço deve ou não continuar a ser executado. Chamamos essa
estrutura de repetição em Python de for.
Porém, antes de começar o for, vamos conhecer uma função de Python que gera uma lista de
valores numéricos. Essa lista ajudará a verificar a repetição e deixará mais claro o entendimento
do laço.
AS LISTAS DO TIPO RANGE()
Ao chamar o método range(), Python cria uma sequência de números inteiros. Ela pode ser
chamada de maneira simples, apenas com um argumento. Nesse caso, a sequência começará em
0 e será incrementada de uma unidade, até o limite do parâmetro passado (exclusive).
 EXEMPLO
Por exemplo, range(3) cria a sequência (0, 1, 2).
Para que a sequência não comece em 0, podemos informar o início e o fim como parâmetros,
lembrando que o parâmetro fim não entra na lista (exclusive o fim). O padrão é incrementar cada
termo em uma unidade. Ou seja, a chamada range(2, 7) cria a sequência (2, 3, 4, 5, 6).
Também é possível criar sequências mais complexas, indicando os parâmetros de início, fim e
passo, nessa ordem. O passo é o valor que será incrementado de um termo para o próximo.
 EXEMPLO
Por exemplo, range(2, 9, 3) cria a sequência (2, 5, 8).
O método range() será muito útil em nosso estudo do laço for.
A ESTRUTURA FOR
A estrutura for permite que um bloco de instruções seja repetido para todos os itens de uma
sequência. O laço for tem, em geral, o seguinte formato:
for <variável> in <sequência>:
Bloco que será repetido para todos os itens da sequência
Instrução fora do for
Vamos começar com um exemplo simples: imprimir todos os elementos de uma sequência criada
com a chamada range().
Veja uma possível implementação deste exemplo:
(Fonte: o Autor)
A linha 1 mostra a criação do laço, com a variável item percorrendo a sequência (0, 1, 2), criada
pela chamada range(2, 9, 3).
A linha 2 indica a instrução que será executada para cada repetição desse laço.
O laço for executa a instrução da linha 2 três vezes, uma para cada elemento da sequência (2, 5,
8).
sequência 2 5 8
Iteração 1 do laço item = 2
Iteração 2 do laço item = 5
Iteração 3 do laço item = 8
 Atenção! Para visualização completa da tabela utilize a rolagem horizontal
Veja o resultado na figura a seguir:
(Fonte: o Autor)
Vamos ver um exemplo do laço for com uma string.
STRING
String é uma sequência de caracteres individuais.
Suponha que você quer soletrar o nome informado pelo usuário. Uma possível implementação
está na figura a seguir:
(Fonte: o Autor)
javascript:void(0)
javascript:void(0)
javascript:void(0)
javascript:void(0)
A linha 1 faz com que a palavra inserida pelo usuário seja armazenada na variável nome.
A linha 2 mostra a criação do laço, com a variável letra percorrendo a sequência de caracteres
armazenada na variável nome.
A linha 3 indica a instrução que será executada para cada repetição desse laço.
 ATENÇÃO
O laço for executa a instrução da linha 3 tantas vezes quantos forem os elementos da sequência
que está na variável nome.
Supondo que o usuário entre com o nome Laura, as iterações ocorrem de acordo com a tabela a
seguir:
nome L a u r a
Iteração 1 do laço letra = L
Iteração 2 do laço letra = a
Iteração 3 do laço letra = u
Iteração 4 do laço letra = r
Iteração 5 do laço letra = a
 Atenção! Para visualização completa da tabela utilize a rolagem horizontal
Veja o resultado na figura a seguir:
(Fonte: o Autor)
O EXEMPLO DA PARIDADE DE INTEIROS –
USO DO FOR COM IF-ELSE
Vamos agora trabalhar com um exemplo interessante. Suponhamos que seja preciso imprimir
todos os números inteiros de 1 a 10, informando a paridade de cada um deles.
Para isso, temos que usar a estrutura de repetição (para que os números variem de 1 a 10) e a
estrutura de decisão (para testar se o número é par ou ímpar). Ou seja, podemos usar o laço for
em conjunto com a estrutura if (ou if-else).
Uma forma de resolver esse problema pode ser vista assim:
Para todo inteiro x de 1 a 10:
Se x for par, imprimir: “x é par”
Caso contrário, imprimir: “x é ímpar”
Uma possível implementação desse exemplo em Python está na figura a seguir:
(Fonte: o Autor)
Veja que a linha 1 cria o laço for, com a variável num percorrendo a sequência criada pela
chamada range(1, 11) – ou seja, os inteiros de 1 a 10;
Em cada iteração do laço for, a variável num assume o valor de um inteiro dessa sequência.
Na linha 2, testamos se o resto da divisão de num por 2 é zero (lembrando do operador de
comparação ==);
Se o resto for zero, significa que a variável num é par (naquela iteração). Então, é impressa
a mensagem que ela é par (linha 3);
Caso contrário (linha 4) – ou seja, se o resto da divisão de num por 2 não for zero – a
variável num é ímpar (naquela iteração). Então, é impressa a mensagem que ela é ímpar
(linha 5).
Veja o resultado na figura a seguir:
(Fonte: o Autor)
OPERAÇÕES ARITMÉTICAS COM INTEIROS –
USO DO FOR COM ACUMULADOR E
CONTADOR
VAMOS COMEÇAR TRABALHANDO EM OUTRO
EXEMPLO DO USO DO FOR, MAS
APRESENTANDO UM ARTIFÍCIO BASTANTE
CONHECIDO POR DESENVOLVEDORES MAIS
EXPERIENTES: O ACUMULADOR.
Suponhamos que seja preciso imprimir a soma de todos os números inteiros positivos, desde 1
até um limite informado pelo usuário. Ou seja, se o usuário inserir o número 5, o programa deverá
responder 15 (1+2+3+4+5).
Se o usuário inserir 7, o programa deverá responder 28 (1+2+3+4+5+6+7).
Para resolver esse problema, vamos utilizar uma variável chamada soma. Ela começa com valor
zero e será utilizada para armazenar o valor da soma parcial a cada termo que for adicionado.
Uma forma de resolver esse problema pode ser vista assim:
soma 0
Solicitar ao usuário um número inteiro positivo
Ler(limite)
Para todo inteiro x de 1 a limite:
soma = soma + x
Imprimir a soma dos inteiros
Uma possível implementação desse exemplo em Python está na figura a seguir:
(Fonte: o Autor)
Veja que a linha 1 inicializa a variável soma com o valor zero;
A linha 2 representa o pedido de entrada do valor por parte do usuário e armazena esse
←
valor na variável limite;
A linha 3 cria o laço for, com a variável num percorrendo a sequência criada pela chamada
range(1, limite + 1) – ou seja, os inteiros de 1 a limite. Em cada iteração do laço for, a
variável num assume o valor de um inteiro dessa sequência;
Na linha 4, a variável soma armazena o valor que ela tinha anteriormente somado ao valor
atual da variável num;
A linha 5 representa a impressão da mensagem final, com a soma dos inteiros positivos
desde 1 até limite.
Veja o resultado de uma execução deste programa na figura a seguir:
(Fonte: o Autor)
Podemos entender as repetições do laço for de acordo com a tabela a seguir:
soma
(no início da iteração)
num
soma
(no final da iteração)
Iteração 1 do for 0 1 1
Iteração 2 do for 1 2 3
Iteração 3 do for 3 3 6
Iteração 4 do for 6 4 10
Iteração 5 do for 10 5 15
 Atenção! Para visualização completa da tabela utilize a rolagem horizontal
Logicamente, o número de iterações vai depender da variável limite, cujovalor foi informado pelo
usuário. Assim, a variável soma vai acumulando, a cada iteração, o valor anterior somado ao valor
corrente da variável num.
Incrementando um pouco mais nosso problema atual, considere que também precisamos imprimir,
ao final da execução do programa, a média aritmética dos inteiros positivos de 1 até o limite
informado pelo usuário.
PARA ISSO, VAMOS UTILIZAR OUTRO ARTIFÍCIO
AMPLAMENTE CONHECIDO PELOS
DESENVOLVEDORES EXPERIENTES: O
CONTADOR.
Uma variável utilizada como contador serve, essencialmente, para contar. Porém, ele será
utilizado neste problema como uma ferramenta ainda mais útil. Vale lembrar que a média
aritmética de um conjunto de valores é calculada por:
 Atenção! Para visualização completa da equação utilize a rolagem horizontal
M. A.   =   soma dos termos
número de termos
Assim, o contador de iterações será, além de contador, o denominador dessa expressão da média
aritmética.
Uma forma de resolver este problema pode ser vista assim:
soma, contador 0
Solicitar ao usuário um número inteiro positivo
Ler(limite)
Para todo inteiro x de 1 a limite:
soma = soma + x
contador = contador + 1
média soma / contador
Imprimir a média dos inteiros
Uma possível implementação desse exemplo em Python está na figura a seguir:
(Fonte: o Autor)
Veja o resultado de uma execução deste programa na figura a seguir:
(Fonte: o Autor)
Podemos entender as repetições do laço for de acordo com a tabela a seguir:
←
←
soma
(no início da
iteração)
num
soma
(no final da
iteração)
contador
(no final da
iteração)
Iteração 1 do
for
0 1 1 1
Iteração 2 do
for
1 2 3 2
Iteração 3 do
for
3 3 6 3
Iteração 4 do
for
6 4 10 4
Iteração 5 do
for
10 5 15 5
 Atenção! Para visualização completa da tabela utilize a rolagem horizontal
 ATENÇÃO
Vale observar que, especificamente neste exemplo, a variável num poderia ter sido usada como
denominador do cálculo da média, já que ela tem os mesmos valores que a variável contador em
todas as iterações. Porém, isso só se aplica a este caso.
Além disso, existe outra possibilidade de solução, utilizando como denominador o tamanho da
sequência criada pela chamada range(1, limite+1). Para obter esse tamanho, utilizamos o método
len(sequência), que retorna o tamanho de sequência. Ou seja, o denominador poderia ter sido
len(range(1, limite+1)). Porém, o objetivo deste exemplo foi, entre outras funções, apresentar o
uso do contador.
USO DO LAÇO FOR COM QUALQUER
SEQUÊNCIA
Até agora, estudamos neste módulo o uso do laço for com iterações sobre strings e sobre
sequências numéricas. Mas Python permite ainda mais do que isso! Podemos utilizar o laço for
com iterações sobre qualquer sequência, não somente as numéricas e as strings.
Observe o exemplo a seguir:
(Fonte: o Autor)
Veja o resultado da execução na próxima figura:
(Fonte: o Autor)
Olhando as repetições com mais atenção, podemos criar a tabela abaixo:
0 1 2 3 4
nomes ‘Laura’ ‘Lis’ ‘Guilherme’ ‘Enzo’ ‘Arthur’
Iteração 1 do
laço
nome
=
‘Laura’
Iteração 2 do
laço
nome
=
‘Lis’
Iteração 3 do
laço
nome
=
‘Guilherme’
Iteração 4 do
laço
nome
=
‘Enzo’
Iteração 5 do
laço
nome
=
‘Arthur’
 Atenção! Para visualização completa da tabela utilize a rolagem horizontal
RESUMO
No vídeo a seguir o professor apresentará um resumo dos principais conceitos abordados no
módulo 2. Assista:
VERIFICANDO O APRENDIZADO
1. CONSIDERE O SEGUINTE TRECHO DE UM PROGRAMA ESCRITO EM
PYTHON:
A = 1
B = 2
FOR I IN RANGE(3):
A = A + B
B = A + B
PRINT(B)
ASSINALE A OPÇÃO QUE APRESENTA CORRETAMENTE O QUE SERÁ
IMPRESSO NA TELA.
A) 5 13 34
B) 3 6 12
C) 3 6 9
D) 5 8 13
2. CONSIDERE O SEGUINTE TRECHO DE UM PROGRAMA ESCRITO EM
PYTHON:
S = 0
FOR I IN RANGE(5):
S += 3*I
PRINT(S)
ASSINALE A OPÇÃO QUE APRESENTA CORRETAMENTE O QUE SERÁ
IMPRESSO NA TELA.
A) 0 3 9 18 30
B) 0 3 6 9 12
C) 30
D) 45
GABARITO
1. Considere o seguinte trecho de um programa escrito em Python:
a = 1
b = 2
for i in range(3):
a = a + b
b = a + b
print(b)
Assinale a opção que apresenta corretamente o que será impresso na tela.
A alternativa "A " está correta.
O laço for vai ser repetido 3 vezes, já que range(3) retorna 3 valores. Na primeira iteração, a
variável a recebe o valor 3 e a variável b recebe o valor 5 (3 + 2). Assim, será impresso o valor 5
da variável b. Na segunda iteração, a variável a recebe o valor 8 (3 + 5) e a variável b recebe o
valor 13 (8 + 5). Assim, será impresso o valor 13 da variável b. Na terceira iteração, a variável a
 recebe o valor 21 (8 + 13) e a variável b recebe o valor 34 (21 + 13). Assim, será impresso o
valor 34 da variável b.
2. Considere o seguinte trecho de um programa escrito em Python:
s = 0
for i in range(5):
s += 3*i
print(s)
Assinale a opção que apresenta corretamente o que será impresso na tela.
A alternativa "C " está correta.
O laço for vai ser repetido 5 vezes, já que range(5) retorna à sequência (0, 1, 2, 3, 4). Vale
observar que a instrução print(s) está fora do laço for, o que leva a ser executada apenas uma
vez, quando o laço se encerrar. Isso elimina as opções (A) e (B). A variável s começa com valor
zero e é acrescida, a cada iteração, do valor 3*i, sendo que i pertence à sequência (0, 1, 2, 3, 4).
Ou seja, s recebe os acréscimos: 0 + 3 + 6 + 9 + 12. Assim, ela termina o laço com o valor 30,
que será impresso pela instrução print(s).
MÓDULO 3
 Identificar a estrutura de repetição com teste em Python
INTRODUÇÃO
Na introdução do módulo anterior, abordamos a lista de compras e a nossa lista mental para sair
de casa: carteira, celular e chave. Já vimos que a repetição de um bloco de instruções é algo
extremamente útil quando programamos.
(Fonte: fotogestoeber / Shutterstock)
Porém, nem sempre o laço for será o mais indicado para controlar essas repetições. Você
consegue imaginar o motivo?
O laço for permite um número determinado de repetições, uma vez que as iterações são sobre
uma sequência finita de itens. Vamos ver agora como tratar o caso em que precisamos de um
número indeterminado de repetições.
CONCEITOS
Nos módulos anteriores deste tema, você foi apresentado às estruturas de decisão (if e if-else) e
de repetição com variável de controle (for). Agora, você será apresentado a outra estrutura de
repetição, mas que depende de uma condição. É como se estivéssemos mesclando a repetição
do for com o teste condicional do if. O nome desta estrutura é while.
A ESTRUTURA WHILE
A ESTRUTURA WHILE PERMITE QUE UM BLOCO
DE INSTRUÇÕES SEJA REPETIDO ENQUANTO
UMA CONDIÇÃO SEJA VERDADEIRA.
O laço while tem, em geral, o seguinte formato:
while <condição>:
Bloco que será repetido enquanto a condição for verdadeira
Instrução fora do while
Podemos entender o laço while observando a figura a seguir:
(Fonte: o Autor)
Como exemplo inicial do uso do laço while, vamos analisar um programa em que usuário precisa
digitar a palavra “sair” para que o laço while seja encerrado.
Uma forma de resolver o problema pode ser vista assim:
Solicitar ao usuário uma palavra
Ler(palavra)
Enquanto palavra for diferente de ‘sair’:
Solicitar ao usuário uma palavra
Ler(palavra)
Imprimir mensagem fora do laço while
Uma possível implementação desse exemplo em Python está na figura a seguir:
(Fonte: o Autor)
A linha 1 representa a solicitação ao usuário para que ele insira uma palavra, que será
armazenada na variável palavra;
A linha 2 cria o laço while, que depende da condição <valor da variável palavra ser diferente
de ‘sair’>;
A linha 3 será repetida enquanto a condição for verdadeira, ou seja, enquanto o valor da
variável palavra for diferente de ‘sair’. Quando o valor da variável palavra for igual a ‘sair’, a
condição do laço while será falsa e o laço será encerrado;
A linha 4 representa a impressão da mensagem fora do laço while.
Veja uma execução desse programa na figura a seguir:
(Fonte: o Autor)Observe agora outra execução do mesmo programa:
(Fonte: o Autor)
Perceba que ao digitar ‘sair’ logo na primeira solicitação, a linha 3 do nosso programa não é
executada nenhuma vez. Ou seja, o programa nem chega a entrar no laço while.
Em outras linguagens como C ou Java, existe outra estrutura muito semelhante ao while,
chamada do-while. A diferença básica entre elas é o momento em que a condição é testada.
 ATENÇÃO
No laço while, a condição é testada antes da iteração. No laço do-while, a condição é testada
após a iteração. Em outras palavras, o laço while testa e executa.
O laço do-while executa e testa. Infelizmente, a estrutura do-while NÃO existe em Python. Isso
não chega a ser um grande problema, porque podemos adaptar nosso programa e controlar as
repetições com o laço while, como foi feito no exemplo anterior.
OPERAÇÕES NUMÉRICAS COM O LAÇO
WHILE
Grande parte das aplicações do laço while são focadas em operações numéricas.
OPERAÇÃO 1
Vamos começar com uma operação financeira.
Considere que queremos saber depois de quantos anos uma aplicação, com juros anuais
informados pelo usuário, terá atingido 50% de rendimento sobre o valor aplicado inicialmente. Ou
seja, se a aplicação inicial foi de R$1.000,00, quantos anos serão necessários para atingir o valor
de R$1.500,00?
PARA RESOLVER ESSE PROBLEMA, VAMOS
UTILIZAR UMA VARIÁVEL CHAMADA FATOR.
Ela começa com valor 1 e será utilizada para armazenar o valor pelo qual a aplicação será
multiplicada para obter o montante acumulado. Veja que nosso objetivo é atingir 50% de
rentabilidade. Ou seja, precisamos verificar quando fator atinge o valor 1,5 (50% acima do valor
inicial).
Veja que a aplicação de R$1.000,00 precisa atingir R$1.500,00, ou seja, precisa ser multiplicada
por 1,5.
 ATENÇÃO
Além da variável fator, utilizaremos a variável contador para sabermos quantos anos passam até
atingirmos nosso objetivo.
Uma forma de resolver o problema pode ser vista assim:
fator 1
contador 0
Solicitar ao usuário a taxa de juros anual
Ler(taxa)
Enquanto fator < 1,5:
fator = fator + fator*taxa
contador = contador + 1
Imprimir o número de anos passados
Uma possível implementação dessa solução em Python está na figura a seguir:
←
←
(Fonte: o Autor)
Veja uma execução desse programa:
(Fonte: o Autor)
Podemos entender as repetições do laço while de acordo com a tabela a seguir:
fator
(no início da
iteração)
fator
(no final da
iteração)
contador
(no final da
iteração)
Iteração 1 do
while
1 1 + 0,08*1 = 1,08 1
Iteração 2 do
while
1,08
1,08 + 0,08*1,08 =
1,17
2
Iteração 3 do
while
1,17
1,17 + 0,08*1,17 =
1,26
3
Iteração 4 do
while
1,26
1,26 + 0,08*1,26 =
1,36
4
Iteração 5 do
while
1,36
1,36 + 0,08*1,36 =
1,47
5
Iteração 6 do
while
1,47
1,47 + 0,08*1,47 =
1,59
6
 Atenção! Para visualização completa da tabela utilize a rolagem horizontal
Veja que a rentabilidade desejada de 50% é atingida durante o sexto ano. Como estamos
trabalhando com anos completos, é necessário então completar o sexto ano, levando à resposta
final de 6 anos.
OPERAÇÃO 2
Vamos analisar uma progressão geométrica que tem termo inicial 1 e razão 0,5.
 RELEMBRANDO
A progressão geométrica é aquela em que cada termo é calculado a partir do termo anterior,
multiplicado pela razão.
Ou seja, a progressão geométrica que vamos analisar é:
 Atenção! Para visualização completa da equação utilize a rolagem horizontal
Observe que a progressão geométrica acima é infinita, não tem limite de termos. Caso nós
quiséssemos saber a soma dos termos, como poderíamos agir?
1,   ,   ,   ,   ,   …12
1
4
1
8
1
16
Como calcular a soma de uma sequência que não tem fim? Veja que os termos vão ficando cada
vez menores, mas nunca chegam de fato a zero.
É necessário, então, determinar quando paramos de somar. Suponha que queremos ter precisão
de 0,01. Ou seja, quando a soma for atualizada apenas na 3ª casa decimal, podemos parar de
somar.
Então, quantos termos serão necessários até chegarmos a essa situação?
Para resolver o problema, vamos utilizar uma variável chamada termo. Utilizaremos também a
variável soma para manter atualizado o valor da soma dos termos. Além dessas, utilizaremos a
variável contador para obtermos o número de termos necessários até que paremos de somar.
As três variáveis – termo, soma e contador – começam com valor 1, já contabilizando o primeiro
termo da progressão.
Uma forma de resolver esse problema pode ser vista assim:
termo 1
soma 1
contador 1
Enquanto termo >= 0,01:
termo = termo*0,5
soma = soma + termo
contador = contador + 1
Imprimir o número de termos somados
Uma possível implementação dessa solução em Python está na figura a seguir:
←
←
←
(Fonte: o Autor)
A linha 1 inicializa as variáveis soma, termo e contador;
A linha 2 cria o laço while, que depende da condição <valor da variável termo ser maior ou
igual a 0,01>;
As linhas 3, 4 e 5 serão repetidas enquanto a condição for verdadeira, ou seja, o valor da
variável termo for maior ou igual a 0,01. Quando o valor da variável termo for menor que
0,01, a condição do laço while será falsa e o laço será encerrado;
As linhas 6 e 7 representam a impressão das mensagens fora do laço while.
Veja uma execução desse programa na figura a seguir:
(Fonte: o Autor)
O LAÇO WHILE INFINITO
LAÇOS INFINITOS SÃO ÚTEIS QUANDO
QUEREMOS EXECUTAR UM BLOCO DE
INSTRUÇÕES INDEFINIDAMENTE.
O laço while infinito tem o seguinte formato:
while True:
Bloco que será repetido indefinidamente
Como exemplo, suponha que você deseja criar uma aplicação que permanece por meses ou anos
sendo executada, registrando a temperatura ou a umidade de um ambiente. Logicamente,
estamos supondo que você tenha essa informação disponível pela leitura de algum sensor.
 ATENÇÃO
É necessário tomar cuidado e ter certeza que seu uso é realmente necessário, para evitar
problemas de consumo excessivo de memória.
RESUMO
No vídeo a seguir o professor apresentará um resumo dos principais conceitos abordados no
módulo 3. Assista:
VERIFICANDO O APRENDIZADO
1. CONSIDERE O SEGUINTE TRECHO DE UM PROGRAMA ESCRITO EM
PYTHON:
S = 0
A = 1
WHILE S < 5:
S = 3*A
A += 1
PRINT(S)
ASSINALE A OPÇÃO QUE APRESENTA CORRETAMENTE O QUE SERÁ
IMPRESSO NA TELA.
A) 9
B) 3 6
C) 3 3
D) 3 6 9 12
2. CONSIDERE O SEGUINTE TRECHO DE UM PROGRAMA ESCRITO EM
PYTHON:
A = 1
ESCOLHA = INPUT(‘VOCÊ DESEJA SAIR? S/N’)
WHILE ESCOLHA != ‘S’:
PRINT(A)
A += 1
ESCOLHA = INPUT(‘VOCÊ DESEJA SAIR? S/N’)
SUPONHA QUE O USUÁRIO TENHA INSERIDO, SE E QUANDO SOLICITADO,
NESTA ORDEM:
SAIR SAIR SAIR S S
ASSINALE A OPÇÃO QUE APRESENTA CORRETAMENTE O QUE SERÁ
IMPRESSO NA TELA.
A) 1 2 3 4
B) 2 3 4 5
C) 2 3 4
D) 1 2 3
GABARITO
1. Considere o seguinte trecho de um programa escrito em Python:
s = 0
a = 1
while s < 5:
s = 3*a
a += 1
print(s)
Assinale a opção que apresenta corretamente o que será impresso na tela.
A alternativa "B " está correta.
Ao ser testada pela primeira vez, a condição do while é verdadeira, já que s vale zero. Assim, a
variável s recebe o valor 3 (3x1) e a variável a é acrescida de uma unidade, ficando com o valor
2.
Em seguida, é impresso o valor de s (3). A condição do while é, então, testada novamente, sendo
novamente verdadeira, porque s tem o valor 3 (menor que 5). Nessa iteração, a variável s recebe
o valor 6 (3x2) e a variável a é acrescida de uma unidade, ficando com o valor 3.
Em seguida, é impresso o valor de s (6). A condição do while é, então, testada novamente, e é
falsa, já que s tem o valor 6, maior que 5.
Com isso, o laço while é encerrado e nada mais é impresso. Logo, foram impressos os valores 3
e 6.
2. Considere o seguinte trecho de um programa escrito em Python:
a = 1
escolha = input(‘Você deseja sair? S/N’)
while escolha != ‘S’:
print(a)
a += 1
escolha = input(‘Você deseja sair? S/N’)
Suponha que o usuário tenhainserido, SE e QUANDO solicitado, nesta ordem:
SAIR Sair sair S s
Assinale a opção que apresenta corretamente o que será impresso na tela.
A alternativa "D " está correta.
Ao ser testada pela primeira vez, a condição do while é verdadeira, já que ‘SAIR’ é diferente de
‘S’. Assim, é impresso o valor da variável a, que é 1.
Em seguida, a variável a é acrescida de uma unidade (passa a valer 2) e a variável escolha
recebe novo input do usuário. A condição do while é, então, testada novamente, sendo
novamente verdadeira, porque ‘Sair’ é diferente de ‘S’.
Nessa iteração, é impresso o valor da variável a, que é 2. Em seguida, a variável a é acrescida de
uma unidade (passa a valer 3) e a variável escolha recebe novo input do usuário. A condição do
while é, então, testada novamente, sendo novamente verdadeira, porque ‘sair’ é diferente de ‘S’.
Então, é impresso o valor da variável a, que é 3. Em seguida, a variável a é acrescida de uma
unidade (passa a valer 4) e a variável escolha recebe novo input do usuário.
A condição do while é, então, testada novamente, sendo novamente falsa, porque ‘S’ NÃO é
diferente de ‘S’. Ou seja, o laço while é encerrado. Logo, foram impressos os valores 1, 2 e 3.
MÓDULO 4
 Reconhecer as instruções auxiliares de controle de iteração
INTRODUÇÃO
Neste tema, você foi apresentado a estruturas de decisão e de repetição. Para aumentar seu
poder sobre essas estruturas, é necessário conhecer as instruções auxiliares. Elas permitem que
você pule ou interrompa iterações, entre outras funcionalidades.
(Fonte: puhhha / Shutterstock)
CONCEITOS
As instruções auxiliares interferem no comportamento das estruturas que você aprendeu,
permitindo que o desenvolvedor, de forma consciente e controlada, altere o padrão esperado para
as estruturas if-else e os laços for e while.
A INSTRUÇÃO BREAK
A instrução break interrompe as repetições dos laços for e while. Quando a execução do
programa chega a uma instrução break, a repetição é encerrada e o fluxo do programa segue a
partir da primeira instrução seguinte ao laço.
Para exemplificar o uso da instrução break, vamos voltar ao primeiro exemplo do laço while,
utilizando o laço infinito. O laço será encerrado quando o usuário inserir a palavra ‘sair’. Veja a
figura a seguir:
(Fonte: o Autor)
A linha 1 cria o laço infinito, em que o bloco – composto pelas linhas 2, 3 e 4 – será repetido
indefinidamente;
A linha 2 representa a solicitação de uma palavra ao usuário e o armazenamento deste valor
na variável palavra;
Na linha 3, testamos se a palavra é igual a ‘sair’. Se o teste for verdadeiro, será executada a
linha 4, onde está o break. Ou seja, o laço criado na linha 1 será encerrado;
Somente após a saída do laço será executada a linha 5, que representa a impressão da
mensagem de saída do laço ao usuário.
Veja um exemplo de execução desse programa:
(Fonte: o Autor)
Caso haja vários laços aninhados, o break será relativo ao laço em que ele estiver inserido. Veja a
figura a seguir:
(Fonte: o Autor)
Veja um exemplo de execução desse programa:
(Fonte: o Autor)
A INSTRUÇÃO CONTINUE
A instrução continue também atua sobre as repetições dos laços for e while, como a instrução
break, mas ela não interrompe todas as repetições do laço. A instrução continue interrompe
APENAS a iteração corrente, fazendo com que o laço passe para a próxima iteração.
O exemplo a seguir imprime todos os números inteiros, de 1 até 10, pulando apenas o 5. Veja uma
implementação:
(Fonte: o Autor)
Veja a execução na figura a seguir:
(Fonte: o Autor)
Para ressaltar a diferença entre as instruções break e continue, vamos agora alterar a linha 3 do
nosso programa, trocando a instrução continue pela instrução break. Veja a nova execução:
(Fonte: o Autor)
A INSTRUÇÃO PASS
A INSTRUÇÃO PASS ATUA SOBRE A ESTRUTURA
IF, PERMITINDO QUE ELA SEJA ESCRITA SEM
OUTRAS INSTRUÇÕES A SEREM EXECUTADAS
CASO A CONDIÇÃO SEJA VERDADEIRA.
Assim, podemos concentrar as instruções no caso em que a condição seja falsa. Suponha que
queiramos imprimir somente os números ímpares entre 1 e 10. Uma implementação possível é:
(Fonte: o Autor)
Veja a execução desse programa:
(Fonte: o Autor)
 SAIBA MAIS
Claramente, seria possível reescrever a condição do if-else, para que pudéssemos transformá-la
em um if simples, sem else. Porém, o objetivo aqui é mostrar o uso da instrução pass.
RESUMO
No vídeo a seguir o professor apresentará um resumo dos principais conceitos abordados no
módulo 4. Assista:
VERIFICANDO O APRENDIZADO
1. CONSIDERE O SEGUINTE TRECHO DE UM PROGRAMA ESCRITO EM
PYTHON:
A = 1
WHILE A < 10:
IF A % 2 == 0:
BREAK
ELSE:
A += 1
PRINT(A)
ASSINALE A OPÇÃO QUE APRESENTA CORRETAMENTE O QUE SERÁ
IMPRESSO NA TELA.
A) 1
B) 2
C) 9
D) 10
2. CONSIDERE O SEGUINTE TRECHO DE UM PROGRAMA ESCRITO EM
PYTHON:
A = 0
FOR I IN RANGE(30):
IF A%2 == 0:
A += 1
CONTINUE
ELSE:
IF A%5 == 0:
BREAK
ELSE:
A += 3
PRINT(A)
ASSINALE A OPÇÃO QUE APRESENTA CORRETAMENTE O QUE SERÁ
IMPRESSO NA TELA.
A) 30
B) 10
C) 6
D) 5
GABARITO
1. Considere o seguinte trecho de um programa escrito em Python:
a = 1
while a < 10:
if a % 2 == 0:
break
else:
a += 1
print(a)
Assinale a opção que apresenta corretamente o que será impresso na tela.
A alternativa "B " está correta.
Na primeira iteração, a condição do while é verdadeira, já que a variável a tem o valor 1 (menor
que 10).
Ao testar a condição do if, o resultado é falso, já que a divisão de 1 por 2 deixa resto 1. Assim, a
variável a é acrescida de uma unidade e passa a valer 2.
Na segunda iteração, a condição do while é verdadeira, já que a variável a tem o valor 2 (menor
que 10). Ao testar a condição do if, o resultado é verdadeiro, já que a divisão de 2 por 2 deixa
resto 0.
Assim, o break encerra o laço while e é impresso o valor da variável a, que é 2.
2. Considere o seguinte trecho de um programa escrito em Python:
a = 0
for i in range(30):
if a%2 == 0:
a += 1
continue
else:
if a%5 == 0:
break
else:
a += 3
print(a)
Assinale a opção que apresenta corretamente o que será impresso na tela.
A alternativa "D " está correta.
Na primeira iteração do for, a condição do primeiro if é verdadeira, já que a variável a tem o valor
zero (e o resto da divisão por 2 é zero).
Assim, ela é acrescida de uma unidade (passa a valer 1) e a iteração é interrompida pela instrução
continue. Na segunda iteração do for, a condição do primeiro if é falsa, já que a variável a tem o
valor 1 (e o resto da divisão por 2 é diferente de zero).
Assim, a condição do segundo if é testada e é falsa, já que a divisão de 1 por 5 deixa resto
diferente de 0. Com isso, a variável a é acrescida de 3 unidades (passa a valer 4).
Na terceira iteração do for, a condição do primeiro if é verdadeira, já que a variável a tem o valor
4 (e o resto da divisão por 2 é zero).
Assim, ela é acrescida de uma unidade (passa a valer 5) e a iteração é interrompida pela instrução
continue.
Na quarta iteração do for, a condição do primeiro if é falsa, já que a variável a tem o valor 5 (e o
resto da divisão por 2 é diferente de zero).
Assim, a condição do segundo if é testada e é verdadeira, já que a divisão de 5 por 5 deixa resto
de 0.
Com isso, a instrução break é executada e o laço for é encerrado. Ao imprimir o valor da variável
a, ela tem o valor 5.
CONCLUSÃO
CONSIDERAÇÕES FINAIS
Neste tema, você aprendeu os conceitos de estruturas de decisão em Python, além das estruturas
de repetição com uma variável de controle e baseado em uma condição. O uso correto destes
conceitos é essencial na sua jornada de formação como programador.
Recomendamos que fique atento aos detalhes e procure sempre programar de forma organizada,
utilizando os comentários e nomes de variáveis que ajudem a entender seu significado. Isto vai
evitar erros e tornar sua experiência mais agradável.
AVALIAÇÃO DO TEMA:
REFERÊNCIAS
PERKOVIC, L. Introdução à computaçãousando Python: um foco no desenvolvimento de
aplicações. Rio de Janeiro: LTC, 2016.
Python. INDEX OF PYTHON ENHANCEMENT PROPOSALS (PEPs). Consultado em meio
eletrônico em: 02 de jun. de 2020.
EXPLORE+
Para saber mais sobre os assuntos tratados neste tema, acesse na internet:
O site Python Brasil.
CONTEUDISTA
Humberto Henriques de Arruda
 CURRÍCULO LATTES
javascript:void(0);
javascript:void(0);
javascript:void(0);
javascript:void(0);
javascript:void(0);

Outros materiais