Minicurso de Python



Python

Hora da Revisão

Conheceram Python
Criamos variáveis
Números, Strings & Booleanos
Como criar um arquivo .py
Mecanismos de entrada e saída
Manipulação com operadores
Respostas

Ementa
Mecanismos de controle de fluxo
if
else
elif

for
while
a função range
break
continue
Estruturas
de Decisão
Código procedural
Realiza uma ação logo após a outra

Ações são feitas em uma sequência
Código com controle de fluxo
Uma ação pode ou não ser executada
Cada ação é executada apenas uma vez
Cada ação sempre é executada
Uma ação pode ser executada repetidas vezes
Estruturas
de Decisão

recebe variáveis
calcula a raíz
mostra ao usuário
recebe variáveis
calcula o delta
calcula as 2 e
mostra ao usuário
informa ao usuário
que não possui
raizes reais
calcula
apenas
uma
Delta
><= 0?
= 0
> 0
< 0
if
Realiza ações se uma condição é verdadeira
Caso contrário a ação não é executada
...
if EXPRESSÃO :
CÓDIGO
CÓDIGO
CÓDIGO
...
--> "se"
Estruturas
de Decisão

number = int(input("Digite um número: "))
print("O número digitado foi: ", number)
if number == 42:
print(";)")
print("Obrigado por digitar")
Estruturas
de Decisão

Identação

Forma de organizar a
estrutura do código
Separa horizontalmente os níveis do
código com espaços (geralmente um TAB)
Aumenta a organização e
legibilidade do código
Necessário no Python
nome = input("Digite seu nome: ")
print("Então você é " + nome)
if nome == "Batista":
print("Sou eu")
print("Parabéns")
Identação

hora = int(input("Que horas são? "))
if hora >= 4:
if hora < 12:
print("Bom dia!")
if hora >= 12
if hora < 18:
print("Boa tarde!")
if hora >= 18
if hora < 24:
print("Boa noite!")
if hora < 4
if hora > 0:
print("Boa madrugada!")











Evitem
usar
if 's
encadeados
Usem expressões lógicas
Estruturas
de Decisão

hora = int(input("Que horas são? "))
if hora >= 4 and hora < 12:
print("Bom dia!")
if hora >= 12 and hora < 18:
print("Boa tarde!")
if hora >= 18 and hora < 24:
print("Boa noite!")
if hora < 4 and hora > 0:
print("Boa madrugada!")
E se eu digitar uma hora que não existe?
2 soluções
hora = int(input("Que horas são? "))
if hora >= 4 and hora < 12:
print("Bom dia!")
if hora >= 12 and hora < 18:
print("Boa tarde!")
if hora >= 18 and hora < 24:
print("Boa noite!")
if hora < 4 and hora > 0:
print("Boa madrugada!")
if hora < 0 or hora >= 24:
print("Essa hora é inválida!")
1º: Cobrir essa possibilidade
else
Utilizado após um if
Executado se o if anterior não foi executado
if EXPRESSAO1 :
CODIGO P/ EXPRESSAO1 == True
else:
CODIGO P/ EXPRESSAO1 == False
--> "senão"
Apenas leva em consideração o
último if antes dele
Estruturas
de Decisão

nome = input("Digite seu nome de aluno: ")
if nome == "Batista":
print("Desculpe, apenas alunos
podem digitar o nome.")
else:
print("Registrado com sucesso!")
Estruturas
de Decisão

hora = int(input("Que horas são? "))
if hora >= 4 and hora < 12:
print("Bom dia!")
if hora >= 12 and hora < 18:
print("Boa tarde!")
if hora >= 18 and hora < 24:
print("Boa noite!")
if hora < 4 and hora > 0:
print("Boa madrugada!")
else:
print("Essa hora é inválida!")
Que horas são?
11
Bom Dia!
Que horas são?
3
Boa Madrugada!
Que horas são?
-4
Essa hora é Inválida!
Essa hora é Inválida!
?
?
?
?
?
?
hora = int(input("Que horas são? "))
if hora >= 4 and hora < 12:
print("Bom dia!")
if hora >= 12 and hora < 18:
print("Boa tarde!")
if hora >= 18 and hora < 24:
print("Boa noite!")
if hora < 4 and hora > 0:
print("Boa madrugada!")
else:
print("Essa hora é inválida!")
hora = 3
hora = int(input("Que horas são? "))
if hora >= 4 and hora < 12:
print("Bom dia!")
if hora >= 12 and hora < 18:
print("Boa tarde!")
if hora >= 18 and hora < 24:
print("Boa noite!")
if hora < 4 and hora > 0:
print("Boa madrugada!")
else:
print("Essa hora é inválida!")
hora = -3
hora = int(input("Que horas são? "))
if hora >= 4 and hora < 12:
print("Bom dia!")
if hora >= 12 and hora < 18:
print("Boa tarde!")
if hora >= 18 and hora < 24:
print("Boa noite!")
if hora < 4 and hora > 0:
print("Boa madrugada!")
else:
print("Essa hora é inválida!")
hora = 11
elif
Utilizado após um if ou elif
Faz a checagem se o if não foi executado
if EXPRESSAO1 :
CODIGO P/ EXPRESSAO1 == True
elif EXPRESSAO2:
CODIGO P/ EXPRESSAO2 == True
e EXPRESSAO1 = False
--> "senão se"
Apenas leva em consideração o
último if antes dele
--> "else if"
Estruturas
de Decisão

hora = int(input("Que horas são? "))
if hora >= 4 and hora < 12:
print("Bom dia!")
elif hora >= 12 and hora < 18:
print("Boa tarde!")
elif hora >= 18 and hora < 24:
print("Boa noite!")
elif hora < 4 and hora > 0:
print("Boa madrugada!")
else:
print("Essa hora é inválida!")
Que horas são?
11
Bom Dia!
Que horas são?
3
Boa Madrugada!
Que horas são?
-4
Essa hora é Inválida!
hora = int(input("Que horas são? "))
if hora >= 4 and hora < 12:
print("Bom dia!")
elif hora >= 12 and hora < 18:
print("Boa tarde!")
elif hora >= 18 and hora < 24:
print("Boa noite!")
elif hora < 4 and hora > 0:
print("Boa madrugada!")
else:
print("Essa hora é inválida!")
hora = int(input("Que horas são? "))
if hora >= 4 and hora < 12:
print("Bom dia!")
if hora >= 12 and hora < 18:
print("Boa tarde!")
if hora >= 18 and hora < 24:
print("Boa noite!")
if hora < 4 and hora > 0:
print("Boa madrugada!")
if hora < 0 or hora >= 24:
print("Essa hora é inválida!")
Não são feitas
checagens desnecessárias
Pior caso: 5 checagens
Melhor caso: 1 checagem
Permitem controlar o fluxo da aplicação
Escolhas podem ser feitas
Ações podem ou não ser executadas
dependendo do contexto da aplicação
if --> 'se'
else --> 'senão'
elif --> 'senão se'
Estruturas
de Decisão

Controle
de Fluxo

Realiza ação A
Realiza ação B
Realiza ação C
Recebe um número
Incrementa ele em 1
Diz boa noite
Imprime ele
5x
numero = int(input("Digite um número: "))
numero += 1
print(numero)
numero += 1
print(numero)
numero += 1
print(numero)
numero += 1
print(numero)
numero += 1
print(numero)
print("Boa Noite")
Digite um número:
3
4
5
6
7
8
Boa Noite
Procedural
Verboso
Funcional
Poluído
Estruturas de
Repetição

Permitem controlar o fluxo da aplicação
Permite a repetição de uma ou mais ações
A repetição ocorre até um critério ser atingido
while
Repete um conjunto de comandos até
uma condição deixar de ser verdadeira
--> 'enquanto'
while EXPRESSÃO:
CODIGO P/ EXPRESSÃO = True
CODIGO P/ EXPRESSÃO = True
CODIGO P/ EXPRESSÃO = True
CODIGO P/ EXPRESSÃO = False
Estruturas de
Repetição

numero = int(input("Digite um número: "))
contador = 1
while cont < 6:
print(numero+contador)
print("Boa Noite")
Digite um número:
3
4
4
4
4
4
4
4
4
4
...




Você criou um
Loop Infinito!
numero = int(input("Digite um número: "))
contador = 1
while contador < 6:
print(numero+contador)
contador += 1
print("Boa Noite")
Digite um número:
3
4
5
6
7
8
Boa Noite
numero = int(input("Digite um número: "))
limite = numero + 6
while numero < limite:
numero += 1
print(numero)
print("Boa Noite")
Usuário digita um número
Programa incrementa e
imprime o número até
chegar em 100
Se o número for maior ou igual
a 100 não faça nada
numero = int(input("Digite um número: "))
if numero < 100:
while numero < 100:
numero += 1
print(numero)
Precisamos desse if ?
Digite um número:
95
96
97
98
99
100
Digite um número:
101
numero = int(input("Digite um número: "))
while numero < 100:
numero += 1
print(numero)
numero = 101
101 > 100
Não precisamos do if
numero = int(input("Digite um número: "))
while numero < 100:
numero += 1
print(numero)
Digite um número:
95
96
97
98
99
100
Digite um número:
101
Usuário digita um número
Programa mostra todos os
números múltiplos de 7
daquele número até 100
numero = int(input("Digite um número: "))
while numero < 100:
if numero % 7 == 0 :
print(numero)
numero += 1
numero = int(input("Digite um número: "))
while numero < 100:
if numero % 7 == 0 :
print(numero)
numero += 1
X
for
Repete um conjunto de comandos
--> 'para'
for CONTADOR in range(INICIO, FIM):
CÓDIGO
CÓDIGO
Já vem com a estrutura pra contadores
Estruturas de
Repetição

A função
range()

Usada em conjunto com o in
Faz com que o contador seja
incrementado dentro
do intervalo descrito
contador in range(1, 5)
contador = 1
contador = 2
contador = 3
contador = 4
numero = int(input("Digite um número: "))
for cont in range(1, 6):
print(numero+cont)
print("Boa Noite")
Digite um número:
3
4
5
6
7
8
numero = 3
cont = 1
cont = 2
cont = 3
cont = 4
cont = 5
cont = 6
No laço:
numero = int(input("Digite um número: "))
for cont in range(1, 6):
print(numero+cont)
print("Boa Noite")
numero = int(input("Digite um número: "))
cont = 0
while cont < 6:
print(numero+cont)
cont+=1
print("Boa Noite")
Qual é melhor?
Quando usar cada um?
While:
For:
Até que uma
condição deixe
de ser verdade
Relizar operações
baseadas em
contadores
Como forçar a saída de um laço?
break
continue
Controle
de fluxo

Controle
de fluxo

break:
--> 'quebrar'
Força a saída imediata do laço
for cont in range(1, 10):
print(cont)
1
2
3
4
5
6
7
8
9
for cont in range(1, 10):
print(cont)
if(cont == 5):
break
for cont in range(1, 10):
print(cont)
if(cont == 5):
break
for cont in range(1, 10):
if(cont == 5):
break
print(cont)
1
2
3
4
5
1
2
3
4
continue:
--> 'continue'
Pula para a próxima
iteração do laço
1
2
3
4
5
6
7
8
9
for cont in range(1, 10):
if(cont == 5):
continue
print(cont)
1
2
3
4
6
7
8
9
Controle
de fluxo

for cont in range(1, 10):
print(cont)
if(cont == 5):
continue
for cont in range(1, 10):
if(cont == 5):
continue
print(cont)
1
2
3
4
6
7
8
9
1
2
3
4
5
6
7
8
9
Conselho
Imposição
X
Evitem ao máximo usar
break e continue
Por que?
Por que voce ensinou então?
E o que eu faço se não é pra usar?
Por que?
Quebram o fluxo do código
Imprevisível
Ilegível
Não amigável a open source
Não amigável a trabalho em equipe
Por que voce ensinou então?
E o que eu faço se não é pra usar?
Estava usando for?
Mude para um while
Sintaticamente mais correto
Permite melhor o uso de flags
Estava usando while?
Use flags
break:
flags
Variável que sinaliza se o laço deve continuar ou não
Geralmente possui valor booleano (True ou False)
Controle
de fluxo

for cont in range(1, 10):
if(cont == 5):
break
print(cont)
cont = 1
continuoNoLaco = True
while cont < 10 and continuoNoLaco:
print(cont)
cont++
if cont == 5:
continuoNoLaco = False
Cheque antes da execução de
cada iteração do laço
continue:
E o que eu faço se não é pra usar?
for cont in range(1, 10):
if(cont == 5):
continue
print(cont)
for cont in range(1, 10):
if(cont != 5):
print(cont)
Hora da Revisão

Relembramos a aula passada
Estruturas de Decisão
Estruturas de Repetição
Mecanismos e técnicas
de controle de fluxo
Resolver uma Equação de Segundo Grau
Atividade 1

Imprimir na tela:
Formato: Ax² + Bx + C = 0
Raíz(es) reais
OBS:
Checar determinante
2 raízes, 1 raiz ou nenhuma
Receber do usuário:
Coeficientes
A sequência de Fibonacci
Atividade 2

Número inteiro N > 0 (Checar)
Receber do usuário:
Imprimir na tela:
N números da sequencia de Finonacci
1 1 2 3 5 8 13 21 34 ...
Um elefante incomoda...
Atividade 3

Número inteiro N > 0 (Checar)
Receber do usuário:
Fazer o programa escrever N frases da música do elefante.
Ex: N = 4
1 elefante incomoda muita gente
2 elefantes incomodam incomodam muita mais
3 elefantes incomodam muita gente
4 elefantes incomodam incomodam incomodam incomodam muito mais
É primo?
Atividade 4

Número inteiro N > 0 (Checar)
Receber do usuário:
Imprimir se N é primo ou não
Minicurso de Python - Aula 2
By João Batista
Minicurso de Python - Aula 2
- 265