0% acharam este documento útil (0 voto)
165 visualizações25 páginas

Aula 04 - Lógica de Programação em Python

Este documento discute estruturas de repetição em Python. Ele explica loops while, for e estruturas aninhadas. While repete um bloco de código enquanto uma condição for verdadeira. For executa um bloco de código para cada item em uma sequência. Estruturas aninhadas permitem loops dentro de outros loops.

Enviado por

Rodrigo Andrade
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
165 visualizações25 páginas

Aula 04 - Lógica de Programação em Python

Este documento discute estruturas de repetição em Python. Ele explica loops while, for e estruturas aninhadas. While repete um bloco de código enquanto uma condição for verdadeira. For executa um bloco de código para cada item em uma sequência. Estruturas aninhadas permitem loops dentro de outros loops.

Enviado por

Rodrigo Andrade
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 25

Lógica de

Programação em
Python - Aula 4

LIpE- Laboratório de Informática para Educação


[email protected]
Conteúdo
Estruturas de repetição Operadores lógicos
(laços) •And ( E )
•While •Or (Ou)
•For •Not (Não)
•Comandos de controle do
loop
•Estrutura aninhada
Estruturas de repetição: exemplo prático

Estou com
sede? Não

Sim

Tomo 1 copo
d’água

Continuo com
sede?

Sigo o meu
Sim Não
dia
Escrevendo o exemplo em python
Estou com
sede? Não

Sim

Tomo 1 copo
d’água

Continuo com
sede?

Sigo o meu
Sim Não
dia
Estruturas de repetição
• O que são?

Podem existir situações em que precisamos executar um bloco


do código repetidamente, ou o nosso problema se comporta de
maneira repetida sob determinadas condições . Uma estrutura
de repetição nos permite executar uma ação, ou um conjunto de
ações em sequência, repedidas vezes no nosso programa.

• Por que as usamos?

Permitem determinar o número de execuções de um


determinado código de forma dinâmica. Nos poupando linhas de
código e tornando o programa adaptável a várias situações.
Resumo das estruturas de repetição
• While (enquanto verdadeiro)

Repete um, ou um grupo de comandos, enquanto a condição necessária for verdadeira. A


condição é testada antes de executar o corpo do loop (ou seja, o loop só é iniciado se o
primeiro teste for verdadeiro).

• For (para cada item na sequência,coleção)

Executa um, ou um grupo de comandos, várias vezes, percorrendo itens em uma


sequência.

• Estrutura aninhada

Podemos usar um ou mais loops dentro de um outro loop.


While
• While

Repete um, ou um grupo de comandos, enquanto a condição necessária for verdadeira. A condição é
testada antes de executar o corpo do loop (ou seja, o loop só é iniciado se o primeiro teste for
verdadeiro).

Sintaxe: Enquanto verdadeiro


While (condição):
declaração 1
Corpo do loop
declaração 2
declaração 3
...
declaração n
Exemplos While
Exemplo 1 : contando o número de Exemplo 2 : loop inifinito
repetições
var= 1
varcontador = 0
while (var == 1) :
while (varcontador < 4):
num = input(“Digite um numero: ")
print (“valor do contador = ” + str( varcontador) )
print (“você digitou: “ + num)
varcontador = varcontador + 1
print “Fim!"
print (“fim“)

#*obs: indentação!! Programa executado:

Programa executado: Digite um numero: 2


você digitou: 2
valor do contador = 0 Digite um numero: 4
valor do contador = 1 você digitou: 4
valor do contador = 2 Digite um numero: 5
valor do contador = 3 você digitou: 5
fim # o programa continuará pedindo para digitar um número .....
# para sair do loop infinito usamos Ctrl+C
Exercícios While

Exercício 1 : Crie um programa que peça ao usuário o número de notas que serão inseridas, em
seguida receba o valor de cada nota e apresente a média das notas ao fim do programa

Exercício 2 : Crie um programa que tem como objetivo atualizar a senha do usuário porém essa
nova senha só deve ser registrada caso ela tenha no mínimo 6 dígitos quaisquer. Enquanto a
senha digitada não antender a esse critério continue pedindo uma nova senha.
#Utilizar a função len(string) para obter o número de caracteres da senha inserida pelo usuário
Exemplos While
Exemplo 3 : média para N notas Exemplo 4 : else após o while
N= eval(input(“digite o número de notas: ”)) senhanova=input("digite uma senha: ")
contador=0 while(len(senha)<6):
somatorio=0 print("senha muito curta")
while (contador < N): senhanova=input("digite uma senha: ")
somatorio+=eval(input(“digite uma nota: ”)) else:
contador+=1 senhaBD=senhanova
print (“media: “ + str(somatorio/N)) # pode surgir a dúvida : não dará o mesmo resultado se
deletarmos o else ? Nesse caso “sim”
Programa executado: Programa executado:

digite o número de notas: 5 digite uma senha: lipe


digite uma nota: 5 senha muito curta
digite uma nota: 4 digite uma senha: l1p3-
digite uma nota: 6 senha muito curta
digite uma nota: 3 digite uma senha: l1p3-super
digite uma nota: 7 senha ok!
media: 5.0
Exemplos While
Exemplo 5 : exemplo 4 else necessário

senhanova=input("digite uma senha: ") # implementar o código


contador=0
while(len(senhanova)<6):
print("senha muito curta")
senhanova=input("digite uma senha: ") # novidade : adicionamos mais uma “condição” no loop
contador+=1 O loop irá ser interrompido pelo break caso o contador
if(contador==3): alcance o valor 3
print("número de tentativas excedido")
break; # novidade : ‘break;’
É um comando de controle de loops.
else: Interrompe e sai do loop assim que executado
senhaBD=senhanova Será melhor explicado a frente
print("senha atualizada no BD : "+senhaBD)
# nesse exemplo só quero que a minha senha
no banco de dados seja atualizada se forem
feitas no máximo 3 tentativas
For
Executa um ou um grupo de comandos N vezes, onde N representa o número de itens em uma
sequência,coleção.
Item é uma nova
(o nome da variável pode ser variável criada no
qualquer um, o nome ‘item’ início do for que irá
foi apenas ilustrativo) assumir o valor cada
um dos itens contidos
Sintaxe:
for item in sequencia: na sequência
desejada. Tal
declaração 1 sequência pode ser
Corpo do loop declaração 2 uma string, tupla,
lista,range() ...
declaração 3 Logo , o corpo do loop
... irá ser executado um
(o nome da sequencia será o total de N vezes onde
nome da sequencia que N representa a
desejamos percorrer) quantidade de itens na
sequência
Percorrendo uma sequência com For
O for pode iterar sobre os itens contidos em uma sequência, como uma lista ou uma string.

Exemplo 1: percorrendo uma string Exemplo 2: percorrendo uma lista

meunome=“rodrigo” minhalista=[“rodrigo”,”miguel”,”victor”]
contador=0 contador=0
for caractere in meunome: for item in minhalista:
contador+=1 contador+=1
print(caractere) print(item)
print(contador) print(contador)
r
o
d rodrigo
Resultado: r Resultado: miguel
i victor
g 3
o
7
Preenchendo estruturas de dados com for

Exercício 1 : Criar um programa que receba o número de nomes a serem salvos em


uma lista (deve ser criada) e em seguida receba e armazene estes nomes nessa lista.
O primeiro nome digitado deve ser o primeiro nome da lista, enquanto o último
digitado deve ser o último nome da lista

Exercício 2 : Fazer o mesmo exercício porém de forma que o primeiro nome digitado
seja o último da lista e o último digitado seja o primeiro da lista

Exercício 3 : Crie um programa que deve receber uma string, e exibir este número
inteiro invertido. Por exemplo :
Entrada “LIPE”
Saída “EPIL”
#comando len(string) retorna o número de caracteres na string
EX n=int(input("digite o número de nomes : ")) digite o número de nomes : 3
1 lista=[] digite um nome: rodrigo
for i in range(0,n,1): digite um nome: victor
lista.append(input("digite um nome: ")) digite um nome: renan
print(lista) ['rodrigo', 'victor', 'renan']

EX2
n=int(input("digite o número de nomes : ")) digite o número de nomes : 3
lista=[] digite um nome: rodrigo
for i in range(0,n,1): digite um nome: victor
lista.insert(0,input("digite um nome: ")) digite um nome: renan
print(lista) ['renan', 'victor', 'rodrigo']

EX palavra=input("digite a palavra a ser invertida: ") digite a palavra a ser invertida: LIPE
3 tamanho=len(palavra) EPIL
palavrainvertida="" >>>
for i in range(tamanho,0,-1): digite a palavra a ser invertida: PYTHON
palavrainvertida+=palavra[i-1] NOHTYP
>>>
print(palavrainvertida) digite a palavra a ser invertida: SUBINO ONIBUS
SUBINO ONIBUS
Range() : uma função muito utilizada no
for do python

Forma geral: range (início, fim, passo)


Exemplos:

range(5, 10,1) # a lista tem início no valor 5, e caminha em progressão aritimética até o valor
5, 6, 7, 8, 9 10 (o valor fim nunca é incluído na sequência gerada) com passo = 1

range(0, 10, 3)
0, 3, 6, 9 o valor fim nunca é incluído na sequência gerada!!

range(-10, -100, -30)


-10, -40, -70
Estrutura aninhada

Exemplo While:
While(1) (condição):
while(2) (condição):
Corpo do while 1 declarações while2 Corpo do while 2
declarações while1

• Como podemos observar, o while 2 está dentro do corpo do while 1. Assim, para cada
iteração do while 1 haverá um teste inicial para o while 2, podendo este ser iniciado ou não.
• Podemos concluir que para termos um primeiro teste do while interno devemos ter a
condição do while externo sendo verdadeira pelo menos uma vez.
• Podemos aplicar a estrutura aninhada também ao for.
Exemplo estrutura aninhada

matriz=[]
for i in range (0,3,1):
linha=[] O código gera uma matriz identidade 3X3
for j in range (0,3,1):
if i==j : [[1, 0, 0], [0, 1, 0], [0, 0, 1]]
linha.append(1)
else:
linha.append(0)
matriz.append(linha)

print(matriz)
Declarações de controle para loops
Saída

• break: força o programa a interromper e sair do loop. for i in range(1,6):


São executados normalmente os comandos logo if i == 3: 1
abaixo da estrutura do loop break 2
print i

• continue: interrompe a iteração no ponto onde está for i in range(1,6): 1


implementado e em seguida faz o loop pular para a if i == 3: 2
próxima repetição, descartando os comandos a abaixo continue 4
do continue print i 5

• pass:pass é um operador nulo,quando executado


nada acontece. No entanto, pode ser útil quando é def f(arg):
requerido uma declaração(devido à sintaxe da pass
linguagem) mas o programador não deseja inserir
nenhum código naquele ponto naquele momento
Condição composta para o primeiro exemplo
Estou com sede
e com água? Não

Sim

Tomo 1 copo
d’água

Continuo com
sede e com água?

Sim Não Sigo o meu


dia
Condição composta para o primeiro exemplo
Estou com sede
e com água? Não

Sim

Tomo 1 copo
d’água

Continuo com
sede e com água?

Sim Não Sigo o meu


dia
Operadores lógicos

Os operadores lógicos unem expressões lógicas formando assim, uma nova expressão
que é composta por 2 ou mais sub-expressões. O resultado lógico de expressões compostas
será a relação entre as sub-expressões. Como estudamos, toda expressão lógica avaliada
resultará num valor lógico e a relação entre vários valores lógicos é um outro valor lógico.
Quando estudamos os operadores relacionais aprendemos a obter o valor lógico entre 2
operandos, no caso, entre o operando que está a esquerda do operador e o operando que
está a direita do Operador Relacional. Como resposta, obtemos valores do tipo Booleano, isto
é, verdadeiro [True] ou falso [False].
Operadores lógicos

OR
O operador lógico OR sempre precisará que uma das 2 sub-
expressões conectadas sejam verdadeiras para que, a
expressão num todo seja verdadeira.
AND
O operador lógico AND sempre precisará que as duas sub-
expressões conectadas sejam verdadeiras para que a expressão
num todo seja verdadeira

NOT O operador lógico NOT muda a nossa análise da expressão.


Essencialmente se ela era verdadeira, se torna falsa.Se era falsa
se torna verdadeira.
Operadores Lógicos
A=10
B=15
Exemplos Resultado da expressão

A>0 and B>0 TRUE


and A>0 and B<0 FALSE
B>A and B==10 TRUE

A>B or B==15 TRUE


ou A<B or B=!15 TRUE
A>B or B=!15 FALSE

not A>0 FALSE


not not A>0 or not A>B TRUE
not B<14 and A<B TRUE
Tabela Lógica

Você também pode gostar