- Estrutura Condicional if
A estrutura if avalia uma expressão e executa um bloco de código com base no valor booleano retornado.
Formas Básicas
# Estrutura simples: executa se a condição for verdadeira
if condicao:
bloco_de_codigo
# Estrutura com else: alternativa quando a condição é falsa
if condicao:
bloco_se_verdadeiro
else:
bloco_se_falso
# Estrutura com elif: múltiplas condições
if condicao1:
bloco1
elif condicao2:
bloco2
else:
bloco_padrao
# Estruturas aninhadas
if condicao_principal:
if condicao_secundaria:
bloco_interno
elif condicao_alternativa:
bloco_alternativo
else:
bloco_interno_padrao
Operadores Lógicos
Os operadores and, or e not permitem combinar ou inverter condições:
and: retorna verdadeiro apenas se ambas as expressões forem verdadeiras.or: retorna verdadeiro se pelo menos uma expressão for verdadeira.not: inverte o valor booleano da expressão.
Exemplos Práticos
# Verificação de paridade
numero = 73
if numero % 2 == 0:
print(f"{numero} é par")
else:
print(f"{numero} é ímpar")
# Verificação de string vazia
texto = input("Insira um texto: ")
if not texto:
print("O texto está vazio")
else:
print("O texto não está vazio")
# Classificação de nota com validação
pontuacao = int(input("Insira a pontuação (0-100): "))
if pontuacao < 0 or pontuacao > 100:
print("Valor inválido")
elif pontuacao <= 60:
print("Classificação: C")
elif pontuacao <= 90:
print("Classificação: B")
else:
print("Classificação: A")
- Laço de Repetição for
O laço for itera sobre elementos de uma sequência ou objeto iterável.
Sintaxe Geral
for variavel in iteravel:
bloco_de_codigo
Exemplos
# Soma de números de 1 a 10
acumulador = 0
for valor in range(1, 11):
acumulador += valor
print(f"Soma total: {acumulador}")
# Iteração sobre caracteres
sequencia = "abcd"
for caractere in sequencia:
print(caractere)
- Laço de Repetição while
O laço while repete um bloco de código enquanto uma condição permanecer verdadeira.
Sintaxe
while condicao:
bloco_de_codigo
Exemplos
# Soma de 1 a 100
soma_total = 0
contador = 1
while contador <= 100:
soma_total += contador
contador += 1
print(f"Resultado: {soma_total}")
# Sistema de login com tentativas limitadas
tentativas_restantes = 3
login_sucesso = False
while tentativas_restantes > 0 and not login_sucesso:
usuario = input("Utilizador: ")
senha = input("Senha: ")
if usuario == "admin" and senha == "secreta":
print("Acesso autorizado")
login_sucesso = True
else:
tentativas_restantes -= 1
if tentativas_restantes > 0:
print(f"Credenciais inválidas. Tentativas restantes: {tentativas_restantes}")
if not login_sucesso:
print("Número máximo de tentativas alcançado. Bloqueando acesso.")
- Instruções de Dessvio
break
Interrompe imediatamente a execução do laço atual.
for elemento in range(1, 6):
if elemento == 4:
break
print(elemento)
# Saída: 1, 2, 3
continue
Ignora a iteração atual e prossegue para a próxima iteração do laço.
for numero in range(1, 6):
if numero == 3:
continue
print(numero)
# Saída: 1, 2, 4, 5
pass
Instrução nula usada como marcador de posição em blocos de código vazios.
for i in range(3):
pass # Implementação futura
Exercícios Práticos
# Gerar a tabuada de multiplicação de 1 a 9
for multiplicador in range(1, 10):
for multiplicando in range(1, 10):
resultado = multiplicador * multiplicando
print(f"{multiplicador} x {multiplicando} = {resultado:2d}", end=" ")
print()
# Jogo de adivinhação com limite de tentativas
import random
numero_secreto = random.randint(1, 100)
max_tentativas = 10
for tentativa in range(1, max_tentativas + 1):
palpite = int(input(f"Tentativa {tentativa}: "))
if palpite == numero_secreto:
print("Parabéns! Acertou!")
break
elif palpite < numero_secreto:
print("O número é maior.")
else:
print("O número é menor.")
else:
print(f"Não acertou. O número era {numero_secreto}.")