Classificação das Estruturas de Controle
1.1 Estrutura Sequencial:
Execução linear do código, instrução por enstrução, na ordem em que aparecem.
1.2 Estrutura Condicional:
Permite a tomada de decisão com base em condições booleaans, direcionando o fluxo de execução.
Condicinoal simples (if)
Se a condição for verdadeira, o bloco indentado é executado.
pontuacao = 88
if pontuacao > 80:
print('Desempenho bom')
Condicional com alternativa (if-else)
Oferece dois caminhos: um para condição verdadeira e outro para falsa.
idade = 17
if idade >= 18:
print('Maior de idade')
else:
print('Menor de idade')
Condicional múltipla (if-elif-else)
Permite avaliar várias condições em sequência.
temperatura = int(input('Informe a temperatura em graus Celsius: '))
if temperatura < 0:
print('Temperatura negativa, muito frio')
elif 0 <= temperatura < 20:
print('Temperatura amena')
elif 20 <= temperatura < 35:
print('Temperatura agradável')
else:
print('Temperatura elevada, muito quente')
Estruturas de Repetição
2.1 Laço While:
Repete um bloco de código enquanto uma condição permanece verdadeira.
while condicao:
codigo_do_bloco
# O bloco é executado repetidamente até que a condição se torne falsa.
Uso de continue e break
O comando continue interrompe a iteração atual e avança para a próxima. O comando break encerra completamente o laço.
tentativas = 0
while True:
usuario = input("Digite seu usuário: ")
senha = input("Digite sua senha: ")
if usuario == "admin" and senha == "secure123":
print("Acesso concedido")
break
else:
print("Credenciais inválidas. Tente novamente.")
tentativas += 1
if tentativas >= 3:
print("Muitas tentativas falhas. Sessão encerrada.")
break
Uso de Flag (Bandeira)
Uma variável booleana pode controlar a execução do laço.
contador = 0
ativo = True
while ativo:
if contador == 4:
print('Ignorando o valor 4')
contador += 1
elif contador == 8:
print('Atingiu o valor 8, encerrando o laço')
ativo = False
else:
print(contador)
contador += 1
Exercício com While: Jogo de Adivinhação
Dado um número secreto, o usuário deve tentar adivinhar. O programa fornece dicas e limita a 3 tentativas, com opção para reiniciar.
numero_secreto = 42
erros_consecutivos = 0
continuar_jogo = True
while continuar_jogo:
palpite = int(input('Adivinhe o número entre 1 e 100: '))
if palpite == numero_secreto:
print('Parabéns! Você acertou!')
break
else:
if palpite > numero_secreto:
print('O palpite é alto demais.')
else:
print('O palpite é baixo demais.')
erros_consecutivos += 1
if erros_consecutivos == 3:
opcao = input('Você errou 3 vezes. Deseja tentar novamente? (s/n): ')
if opcao.lower() == 's':
erros_consecutivos = 0
print('Novas 3 tentativas disponíveis.')
else:
print('Jogo encerrado. O número era:', numero_secreto)
continuar_jogo = False
2.2 Laço For:
Itera sobre elementos de uma sequência, como listas ou intervalos gerados por range.
Função range:
# Gerando números de 0 a 4
for i in range(5):
print(i)
# Gerando números de 3 a 7
for j in range(3, 8):
print(j)
# Gerando números pares de 0 a 8 (passo 2)
for k in range(0, 10, 2):
print(k)
Ao iterar sobre um dicionário, o for retorna as chaves por padrão.
Expressão Ternária
Uma forma concisa de atribuir valores com base em uma condição.
a = 15
b = 20
# Estrutura condicional tradicional
if a > b:
resultado = a
else:
resultado = b
print(resultado)
# Expressão ternária equivalente
resultado = a if a > b else b
print(resultado)
Sintaxe geral: valor_verdadeiro if condicao else valor_falso
Em contextos como tuplas ou dicionários, valores booleanos podem ser mapeados para números ou outros tipos.
# Mapeamento de booleano para número
numero = 1 if True else 0 # Resultado: 1
# Mapeamento de booleano para string
status = "ativo" if True else "inativo" # Resultado: "ativo"