kb.erickguedes.com
Python: De Noob a Hero

Estruturas de Controle

Aula 2 de 10

Condicionais

# if / elif / else
nota = 85

if nota >= 90:
    print("Excelente!")
elif nota >= 70:
    print("Bom")
elif nota >= 50:
    print("Regular")
else:
    print("Precisa melhorar")

# Ternário
idade = 20
status = "Maior" if idade >= 18 else "Menor"

Loops

# for — iterar sobre sequência
for i in range(5):         # 0, 1, 2, 3, 4
    print(i)

for i in range(1, 10, 2):  # 1, 3, 5, 7, 9
    print(i)

for letra in "Python":
    print(letra)

# while
contador = 0
while contador < 5:
    print(contador)
    contador += 1

# break e continue
for i in range(10):
    if i == 3:
        continue    # pula o 3
    if i == 7:
        break       # para no 7
    print(i)

# else em loops (executa se não houve break)
for i in range(5):
    if i == 10:
        break
else:
    print("Loop completou sem break")  # vai executar

Compreensão de Listas

# [expressão for item in iterável if condição]
numeros = [1, 2, 3, 4, 5]
dobros = [n * 2 for n in numeros]           # [2, 4, 6, 8, 10]
pares = [n for n in numeros if n % 2 == 0]  # [2, 4]
quadrados = {n: n**2 for n in range(5)}     # dict comprehension

Match Statement (Python 3.10+)

comando = "start"

match comando:
    case "start":
        print("Iniciando...")
    case "stop":
        print("Parando...")
    case _:
        print("Comando desconhecido")

# Pattern matching avançado
def processar(dados):
    match dados:
        case {"tipo": "usuário", "nome": nome}:
            print(f"Usuário: {nome}")
        case ["erro", mensagem]:
            print(f"Erro: {mensagem}")
        case _:
            print("Formato não reconhecido")

Compreensão de listas não é só syntatic sugar — é mais rápida que loops explícitos. Mas evite aninhar mais de duas.