O documento apresenta uma aula sobre repetição em Python. Ele introduz o uso de loops while para repetir partes de um programa, gerar números aleatórios com o módulo random e criar um jogo de adivinhação com números aleatórios usando esses conceitos.
1. Introdução a Algoritmos e
Linguagens de Programação
Aula 12 | Começando a programar: repetição
Apresentação
Luiz Augusto de M. Morais
2. Roteiro
Repetição
●
Analisando o programa atual
●
Repetindo com Python
●
Usando o interpretador
Jogo de Adivinhação
●
Entendendo o novo problema
●
Primeira tentativa
●
Tornando as coisas aleatórias
●
Segunda tentativa
●
Perguntas idiotas
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
4. Analisando o programa atual
print('Bem-vindo!')
palpite = input('Chute um número: ')
palpite = int(palpite)
if palpite == 5:
print('Você ganhou!')
else:
if palpite > 5:
print('Muito alto.')
else:
print('Muito baixo.')
print('Fim do jogo')
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
5. Analisando o programa atual
Certo. Mas tenho que
executar várias vezes?
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
7. Repetindo com Python
Coloque um valor padrão
para o teste passar
resposta = 'não'
while resposta != 'sim':
print('Ok, vamos continuar.')
resposta = input('Pede pra sair! ')
Não esqueça da O valor da variável de teste
endentação tem que mudar para sair do
loop.
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
9. Usando o Interpretador 1/4
>>> resposta = 'não'
>>> while resposta != 'sim':
... print('Ok, vamos continuar')
... resposta = input('Pede pra sair! ')
...
Ok, vamos continuar
Pede pra sair! não
Ok, vamos continuar
Pede pra sair! não
Ok, vamos continuar
Pede pra sair! sim
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
10. Usando o Interpretador 2/4
>>> x = 5
>>> while x > 0:
... print(x)
...
5
5 Loop infinito!
5
5
5
5
5
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
11. Usando o Interpretador 3/4
>>> x = 5
>>> while x > 0:
... print(x)
... x -= 1
...
5 Com esse decrementador
4 o loop vai parar
3
2
1
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
12. Usando o Interpretador 4/4
>>> x = 0
>>> while x < 10:
... if x % 2 == 0:
... print(x)
... x += 1
...
0
2
4
6
8
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
14. Entendendo o novo problema
Já temos um jogo onde você pode dar palpites e o
programa informa se o palpite é maior ou menor que o
número correto.
O problema é: só temos uma chance!
Temos que achar uma forma deste código ser
repetido várias vezes, até o usuário acertar o palpite.
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
16. Primeira tentativa
print('Bem-vindo!')
palpite = input('Chute um número: ') ●
Qual a parte do código tem que
palpite = int(palpite) repetir?
if palpite == 5:
●
Qual será a variável de teste para o
print('Você ganhou!')
loop?
else:
if palpite > 5:
●
Não esqueça de definir um valor
padrão para a variável de teste fora
print('Muito alto.')
do loop.
else:
print('Muito baixo.')
print('Fim do jogo')
5 minutos!
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
17. Primeira tentativa
print('Bem-vindo!')
palpite = 0
while palpite != 5:
palpite = input('Chute um número: ')
Variável de teste
palpite = int(palpite)
com valor padrão
if palpite == 5:
print('Você ganhou!') Onde a variável
else: de teste muda
if palpite > 5: seu valor
print('Muito alto.')
else:
print('Muito baixo.')
print('Fim do jogo')
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
20. Tornando as coisas aleatórias
Módulo que possui funções
para gerar números aleatórios
import random
numero_aleatorio = random.randint(1, 10)
print(numero_aleatorio)
Qualquer número inteiro
entre 1 e 10
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
24. Segunda tentativa
print('Bem-vindo!')
palpite = 0 ●
Importe o módulo que possui
while palpite != 5: funções que produzem números
palpite = input('Chute um número: ') aleatórios
palpite = int(palpite) ●
Crie uma variável e armazene
if palpite == 5: nela um valor inteiro aleatório
print('Você ganhou!')
●
Troque o valor que está fixo pela
else:
nova variável aleatória
if palpite > 5:
print('Muito alto.')
else:
print('Muito baixo.')
3 minutos!
print('Fim do jogo')
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
25. Segunda tentativa
import random
print('Bem-vindo!')
palpite = 0
Módulo que possui segredo = random.randint(1, 10)
funções para gerar while palpite != segredo: Guardando na
números aleatórios palpite = input('Chute um número: ') variável segredo
palpite = int(palpite) um número inteiro
if palpite == segredo: aleatório entre 1 e
print('Você ganhou!') 10
else:
Substituído
número 5 pela if palpite > segredo:
variável segredo print('Muito alto.')
else:
print('Muito baixo.')
print('Fim do jogo')
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
28. Perguntas Idiotas
Por que tem umas palavras coloridas no código?
●
Só existe um tipo de estrutura de repetição em Python?
●
O que significa while?
●
●
Quando é que a execução de um programa sai do bloco
while?
O que é um loop infinito, mesmo?
●
O que é aquele import random?
●
Eu posso importar outros módulos?
●
O random possui outras funções?
●
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
29. O que aprendemos hoje?
●
Estrutura de repetição while
●
Módulo:
●
random
●
Função:
● random.randint()
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
30. Referências
BARRY, Paul; GRIFFITHS, David. Head First Programming.
Sebastopol: O'Reilly, 2009.
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETO HERMES