Buscar

Laço for e condicionais 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 39 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 39 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 39 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

Python 3.x 
Estrutura de Repetição 
 for 
Estrutura de Decisão 
 if then else 
Introdução à Ciência da Computação 
 
Prof. Edison Ishikawa 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Agenda 
• Laço for 
• Condicionais 
• Expressões Booleanas 
• Operadores Lógicos 
• Tabela verdade 
• Execução condicional 
• Opositores Lógicos 
 
 
 
 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Exemplo: Média Aritmética 
• Enunciado 
• Leia duas duplas de números inteiros, calcule a média 
aritmética de cada dupla e imprima o resultado. 
• Entrada 
• 2 números inteiros por linha 
• 2 linhas 
• Saída 
• A média aritmética, um por linha 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Exemplo de entrada Exemplo de saída 
1 1 
1 2 
1.0 
1.5 
0 0 
0 2 
0.0 
1.0 
Exemplo 
Exemplo 
a, b = input().split() 
a, b = int(a), int(b) 
media = (a+b)/2 
print(media) 
 
a, b = input().split() 
a, b = int(a), int(b) 
media = (a+b)/2 
print(media) 
1 1 
1 2 
1.0 
1.5 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Exemplo: Média Aritmética 
• Enunciado 
• Leia 3 duplas de números inteiros, calcule a média 
aritmética de cada dupla e imprima o resultado. 
• Entrada 
• 2 números inteiros por linha 
• 3 linhas 
• Saída 
• A média aritmética, um por linha 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Exemplo de entrada Exemplo de saída 
1 1 
1 2 
0 0 
1.0 
1.5 
0.0 
Exemplo 
Exemplo 
a, b = input().split() 
a, b = int(a), int(b) 
media = (a+b)/2 
print(media) 
 
a, b = input().split() 
a, b = int(a), int(b) 
media = (a+b)/2 
print(media) 
 
a, b = input().split() 
a, b = int(a), int(b) 
media = (a+b)/2 
print(media) 
1 1 
1 2 
0 0 
1.0 
1.5 
0.0 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Laço for 
• Perceberam que no código várias linhas se 
repetem? 
• Ao invés de ficarmos repetindo o código 
existe um comando Python para repetir um 
trecho de código um determinado número 
de vezes 
• O controle de fluxo para repetir o código 
pode ser visualizado por meio de um 
fluxograma 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Laço for - fluxograma 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Todos os itens 
da sequência 
tiveram a sua 
vez? 
Atribua à variável do loop o 
próximo item 
Execute todos os comandos 
que estão no corpo do loop 
SIM 
NÃO 
Laço for 
• Obs: 
• Identificar estes padrões de repetição e de alguma forma 
adaptar o nosso programa em volta destes padrões é uma 
habilidade vital do pensamento computacional 
• Os valores [1, 2, 3] foram fornecidos para que o corpo do 
loop seja executado 3 vezes 
• Podemos usar qualquer valor, mas estes são os 
convencionalmente usados 
• Como eles são muito usados em qualquer programa, 
Python nos dá um objeto que já vem embutido no 
interpretador (built-in) chamado range: 
 D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Exemplo 
for i in range(3): 
 #execute o corpo do laço for 3 vezes, com i valendo, na sequência 
 # começando por i=0, i=1 e terminando com i=2 
Laço for 
• Obs: 
• Cientistas da computação gostam de começar a contar a 
partir do zero e não do 1! 
• range fornece uma sequência de valores à variável do loop 
for. 
• Começa com 0 (zero) e, neste caso não inclui o 4 (quatro) 
• Como não usamos a variável i do loop for no corpo do loop, 
podemos substituí-la por _, embora isto não seja importante 
para o fluxo do programa, é um bom estilo 
• Logo, para repetir alguma coisa 3 vezes, um bom 
programador Python escreveria: 
 
 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
for _ in range(3): 
 a, b = input().split() 
 a, b = int(a), int(b) 
 media = (a+b)/2 
 print(media) 
Laço for 
• Obs: 
• Mas e se quisermos usar a variável do loop for no corpo do 
programa? 
• Sem problemas! 
 
 
 
 
 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Exemplo: 
for i in [“média1”, “média2”, “média3”]: 
 a, b = input().split() 
 a, b = int(a), int(b) 
 media = (a+b)/2 
 print(i+”=“, media) 
média1= 1.0 
média2= 1.5 
média3= 0.0 
Condicionais 
• Programas de computador ficam realmente 
interessantes quando testamos condições e mudamos 
seu comportamento dependendo do resultados dos 
testes! 
• É disto que vamos tratar a seguir. 
• Valores booleanos e expressões 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Matemático Britânico 
que inventou a 
Álgebra Booleana 
Valores Booleanos 
• Um valor Booleano ou é verdadeiro ou é falso. 
• Álgebra Booleana 
• Algumas regras sobre como raciocinar para combinar estes 
valores 
• Em Python, os dois valores Booleanos são: 
• True 
• False 
• (Note as letras maiúsculas que devem ser exatamente iguais 
ao mostrado acima!) 
 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Exemplos 
>>> type(True) 
<class ‘bool’) 
>>>type(true) 
Traceback (most recent call last): 
 File "<pyshell#14>", line 1, in <module> 
 type(true) 
NameError: name 'true' is not defined 
Expressão Booleana 
• É uma expressão que faz um cálculo para produzir um 
resultado que é um valor Booleano 
• Por exemplo, o operador == testa se dois valores são 
iguais 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Exemplo 
>>> 5 == (3 + 2) 
True 
>>> 5 == 6 
False 
>>> j = “hel” 
>>> j + “lo” == “hello” 
True 
Operadores de Comparação 
• O operador == é um dos seis operadores de 
comparação que produzem um resultado bool 
 
 
 
 
 
 
 
 
 
• Obs: 
• O operador = é diferente do operador == 
• Não existe => ou =< 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
 x == y # resulta True se x é igual a y 
 
 x != y # resulta True se x não é igual a y 
 
 x > y # resulta True se x é maior que y 
 
 x < y # resulta True se x é menor que y 
 
 x >= y # resulta True se x é maior ou igual a y 
 
 x <= y # resulta True se x é menor ou igual a y 
Variáveis boolenas 
• Como qualquer outro tipo, valores Booleanos podem ser 
atribuídos a uma variável, impressos, etc... 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Exemplos: 
>>> idade = 19 
>>> maior_de_idade_para_tirar_carteira_de_motorista = idade >= 18 
>>>print(maior_de_idade_para_tirar_carteira_de_motorista)>>>True 
>>>type(maior_de_idade_para_tirar_carteira_de_motorista) 
<class ‘bool’> 
Operadores Lógicos 
• Existem três operadores lógicos: 
• and ( e em português) 
• or (ou em português) 
• not (não em português) 
• Permitem construir expressões Booleanas mais complexas 
• A semântica (significado) destes operadores é similar ao seu 
significado em Inglês (Português) 
• x > 0 and x < 10 
• x está no intervalo (0, 10) 
• n%2 == 0 or n%3 == 0 
• n é divisível por 2 ou por 3 
• not (x > y) 
• É verdadeiro (True) se x > y e falso (False) se x é menor ou igual a 
y 
 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Tabela Verdade 
• É uma pequena tabela que permite listar todas as 
possíveis entradas e dar os resultados para a operação 
lógica 
• Como os operadores and e or só tem dois operandos, 
só existem quatro linhas em uma tabela verdade que 
descreve a semântica do and. 
 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
 a b a and b 
False False False 
False True False 
True False False 
True True True 
Tabela Verdade or 
 a b a or b 
F F F 
F T T 
T F T 
T T T 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
 a b a or b 
0 0 0 
0 1 1 
1 0 1 
1 1 1 
Abreviando 
Usando números binários 
Tabela verdade not 
a not a 
F T 
T F 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
a not a 
0 1 
1 0 
Simplificando expressões 
booleanas 
• Um conjunto de regras para simplificar e rearranjar 
expressões é chamado de álgebra 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Exemplos para operador and 
 x and False == False 
 False and x == False 
 y and x == x and y 
 x and True == x 
 True and x == x 
 x and x == x 
Exemplos para operador or 
 x or False == x 
 False or x == x 
 y or x == x or y 
 x or True == True 
 True or x == True 
 x or x == x 
Simplificando expressões 
booleanas 
• Dois operadores not se cancelam 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Exemplo 
 not ( not x ) == x 
Execução Condicional 
• Para se escrever um programa útil, quase 
sempre precisamos ser capazes de verificar 
alguma condição e em função disto, 
modificar o comportamento do programa. 
• Estruturas (Comandos) condicionais nos 
dão esta capacidade 
• A estrutura mais simples é o comando if 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Fluxograma da estrutura if 
com uma cláusula else 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
condição 
Lista de 
Comandos 1 
Lista de 
Comandos 2 
False True 
Fluxograma da estrutura if 
com uma cláusula else 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Exemplo: 
 if x % 2 == 0: 
 print(x, “ é par.”) 
 print(“Você sabia que o 2 é o único número par que é primo?”) 
 else: 
 print(x, “ é ímpar.”) 
 print(“Você sabia que a multiplicação de dois números ímpares “ + 
“ sempre resulta em um número ímpar?”) 
 
Fluxograma da estrutura if 
com uma cláusula else 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Sintaxe 
 if <EXPRESSÃO BOOLEANA> : 
 <COMANDO_1> # Executado se a condição é verdadeira 
 else: 
 <COMANDO_2> # Executado se a condição é falsa 
Omitindo a cláusula else 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
condição 
comando 
True 
Omitindo a cláusula else 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Exemplo 
 if x < 0 : 
 print(“O número negativo “, x, “não é válido aqui!”) 
 x = 42 
 print(“Por isso, decidi usar o número 42. “) 
 
 print(“ A raiz quadrada de “, x, “ é “, math.sqrt(x)) 
Tem que usar 
import math 
suíte ou 
bloco de 
comandos 
else não é um comando, é uma cláusula 
Condicionais encadeadas 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Exemplo: 
 if x > y: 
 <BLOCO_DE_COMANDOS_A> 
 elif x < y: 
 <BLOCO_DE_COMANDOS_B> 
 else: # x == y 
 <BLOCO_DE_COMANDOS_C> 
 
 
Como fica o 
fluxograma? 
Condicionais encadeadas 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
x < y 
x > y 
Bloco de 
comandos C 
Bloco de 
comandos A 
Bloco de 
comandos B 
Condicionais encadeadas 
• Não existe limite para o encadeamento 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Exemplo 
 if opcao == “a”: 
 funcao_1( ) 
 elif opcao == “b”: 
 funcao_2( ) 
 elif opcao == “c”: 
 funcao_3( ) 
 elif opcao == “d”: 
 funcao_4( ) 
 elif opcao == “e”: 
 funcao_5( ) 
 else: 
 print(“Opção inválida!”) 
 
Condicionais aninhadas 
• Uma estrutura condicional pode ser aninhada dentro de 
outra estrutura condicional 
• É o mesmo que composição de estruturas 
• Ou seja, os exemplos anteriores podem ser escritos 
como: 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
 x < y 
 x > y 
Bloco de 
comandos C 
Bloco de 
comandos A 
Bloco de 
comandos B 
Condicionais aninhadas 
Exemplo 
 if x < y: 
 <BLOCO_DE_COMANDOS_A> 
 else: 
 if x > y: 
 <BLOCO_DE_COMANDOS_B> 
 else: # x == y 
 <BLOCO_DE_COMANDOS_C> 
 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Embora a indentação de comandos torne o aninhamento das estruturas 
aparente, condicionais aninhadas se tornam rapidamente muito difíceis 
de se entender. 
 
Em geral, é uma boa ideia evitá-las. 
Condicionais aninhadas 
• Para se evitar o aninhamento de estruturas condicionais, 
podemos usar operadores lógicos 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Exemplo aninhado 
 if 0 < x: # Suponha x um número inteiro 
 if x < 10: 
 print(“x é um inteiro positivo de um dígito.”) 
 
Exemplo simplificado 
 if 0 < x and x < 10: 
 print(“x é um inteiro positivo de um dígito.”) 
 
Exemplo: uma terceira opção 
 if 0 < x < 10: 
 print(“x é um inteiro positivo de um dígito.”) 
 
Exercício 
• Uma loja de informática está promovendo a venda de 2 produtos: 
• notebooks a 1500 reais cada, e ipads a 1000 reais cada. 
• A loja está fazendo uma promoção. 
• se o cliente comprar 3 ou mais unidades, entre notebooks e ipads, a loja desconta 
500 reais. 
• sobre o valorresultante depois da primeira promoção, a loja dá um desconto ou 
acréscimo que depende da forma de pagamento: 
• Se o cliente pagar a vista: o desconto será de 10% 
• Se o cliente pagar a prazo: o acréscimo será de 8% 
• Faca um programa que leia três números inteiros a respeito de uma compra, nessa 
ordem: 
• a quantidade de notebooks, a quantidade de ipads e um valor que indica como será 
efetuado o pagamento (0 para pagamento a vista e 1 para pagamento a prazo) 
• O programa deve escrever na tela os seguintes valores reais com duas casas 
decimais: 
• a) valor da compra antes da aplicação da promoção; 
• b) valor da compra depois da aplicação da promoção; 
• c) valor depois da aplicação da forma de pagamento; 
 
• Exemplo de entrada: 2 3 0 
• Exemplo de saída: 5000.00 4500.00 4050.00 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Lógicos opostos 
• Cada um dos seis operadores lógicos tem um oposto 
 
 
 
 
 
 
 
 
• Entender os opostos lógicos evita o uso do operador not 
• Operadores not são frequentemente difíceis de se 
entender no código do programa, e a nossa intenção é 
escrever um código claro e limpo 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
operador oposto lógico 
== != 
!= == 
< >= 
<= > 
> <= 
>= < 
Lógicos opostos 
Exemplo com not 
 if not ( idade >= 18 ): 
 print(“Oi, você é muito jovem para tirar uma carteira de motorista!”) 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
Exemplo mais claro 
 if idade < 18 : 
 print(“Oi, você é muito jovem para tirar uma carteira de motorista!”) 
Lei de Morgan 
• Existem duas leis de simplificação poderosas que 
ajudam muito quando lidamos com expressões 
Booleanas complicadas 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o
 
 
(not (x and y)) == ( (not x) or (not y) ) 
 
 
 (not (x or y)) == ( (not x) and (not y) ) 
 
Bibliografia 
• How to Think Like a Computer Scientist: Learning 
with Python 3 – Documentation - Release 3rd Edition 
• Peter Wentworth, Jeffrey Elkner,Allen B. Downey and 
Chris Meyers 
• Apr 26, 2017 
D
e
p
a
rt
a
m
e
n
to
 d
e
 C
iê
n
c
ia
 d
a
 C
o
m
p
u
ta
ç
ã
o

Continue navegando