UC00606 · Programação estruturada
Aulify · Componente Tecnológica

Programação estruturada

Variáveis, controlo, funções e estruturas básicas em Python
UC00606 · 50 horas · 4,5 pontos Nível 4 · TDS · Ano 2
Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada

Resultados de aprendizagem

  1. Aplicar sintaxe básica de uma linguagem estruturada.
  2. Usar controlo de fluxo (if, while, for).
  3. Decompor programas em funções reutilizáveis.
Continuação natural da UC00245 (Algoritmos). Aqui implementamos o que antes foi pensado em pseudocódigo.
Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada
Bloco 1 · Sintaxe

Variáveis e tipos

Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada

Tipos básicos em Python

# Números
idade = 17               # int
preco = 9.99             # float

# Texto
nome = "Ana"             # str
inicial = 'A'            # str (sem char dedicado)

# Booleano
maior = idade >= 18      # bool (True / False)

# Vazio
sem_valor = None         # NoneType

Python é dinamicamente tipado — não declaramos o tipo, é inferido.

Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada

Operadores

# Aritméticos
5 + 2   # 7
5 - 2   # 3
5 * 2   # 10
5 / 2   # 2.5  (divisão real)
5 // 2  # 2    (divisão inteira)
5 % 2   # 1    (resto)
5 ** 2  # 25   (potência)

# Comparação
5 == 5  # True
5 != 3  # True
5 > 3   # True
5 <= 5  # True

# Lógicos
True and False  # False
True or False   # True
not True        # False
Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada
Bloco 2 · Controlo

If, while, for

Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada

Condicionais

idade = int(input("Idade? "))

if idade >= 18:
    print("Maior")
elif idade >= 13:
    print("Adolescente")
else:
    print("Criança")

Em Python, indentação (4 espaços) define blocos. Não há {}.

Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada

While

# Conta até 5
i = 1
while i <= 5:
    print(i)
    i += 1

For

# Range
for i in range(1, 6):
    print(i)

# Iterar lista
fruta = ["maçã", "pêra", "banana"]
for f in fruta:
    print(f)
Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada
Bloco 3 · Estruturas

Listas, dicts, tuples

Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada

Listas

numeros = [3, 1, 4, 1, 5, 9]

numeros[0]          # 3 — primeiro
numeros[-1]         # 9 — último
numeros[1:4]        # [1, 4, 1] — fatia
len(numeros)        # 6
numeros.append(2)   # adicionar
numeros.sort()      # ordenar

sum(numeros)        # soma total
max(numeros)        # 9
Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada

Dicts (dicionários)

aluno = {
    "nome": "Ana",
    "idade": 17,
    "notas": [15, 16, 14]
}

aluno["nome"]               # "Ana"
aluno["email"] = "a@ex.pt"  # adicionar
del aluno["idade"]          # remover

for chave, valor in aluno.items():
    print(f"{chave}: {valor}")
Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada

Tuples

Imutáveis, úteis para retornar vários valores de função.

coord = (3, 4)
x, y = coord            # unpacking
print(x, y)             # 3 4

def min_max(lst):
    return min(lst), max(lst)

a, b = min_max([1,5,3,9,2])
print(a, b)             # 1 9
Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada
Bloco 4 · Funções

Decompor

Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada

Definir e chamar

def quadrado(x):
    return x * x

def soma(a, b):
    return a + b

print(quadrado(5))       # 25
print(soma(3, 4))        # 7

Princípio: uma função, uma responsabilidade. Nome verbal claro (calcular_imposto, enviar_email, validar_nif).

Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada

Argumentos por defeito

def saudacao(nome, lingua="pt"):
    if lingua == "pt":
        return f"Olá, {nome}!"
    elif lingua == "en":
        return f"Hello, {nome}!"
    return f"Hi, {nome}"

saudacao("Ana")           # "Olá, Ana!"
saudacao("Ana", "en")     # "Hello, Ana!"
Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada

Funções como blocos

Pseudo-decomposição de programa real:

def ler_dados():
    return [int(x) for x in input("Números: ").split()]

def calcular_media(nums):
    return sum(nums) / len(nums) if nums else 0

def imprimir_resultado(media):
    print(f"Média: {media:.2f}")

def main():
    nums = ler_dados()
    m = calcular_media(nums)
    imprimir_resultado(m)

main()
Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada
Bloco 5 · I/O e erros

Ler, escrever, tratar erros

Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada

Input / output

nome = input("Como te chamas? ")
idade = int(input("Idade? "))
preco = float(input("Preço? "))

print(f"Olá {nome}, tens {idade} anos.")
print(f"Preço com IVA: {preco * 1.23:.2f}")

f-string (f"...") é a forma moderna de formatar texto em Python 3.6+.

Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada

Try / except

try:
    idade = int(input("Idade? "))
    print(f"Em 10 anos terás {idade + 10}")
except ValueError:
    print("Idade tem de ser número.")
except KeyboardInterrupt:
    print("\nCancelado.")
finally:
    print("Programa terminado.")
Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada

Ler/escrever ficheiros

# Escrever
with open("dados.txt", "w") as f:
    f.write("Olá mundo\n")
    f.write("Segunda linha\n")

# Ler
with open("dados.txt") as f:
    for linha in f:
        print(linha.strip())

# Ler tudo
with open("dados.txt") as f:
    conteudo = f.read()

with garante fecho automático mesmo com erros.

Aulify · Componente Tecnológica · Cursos Profissionais
UC00606 · Programação estruturada
Aulify · UC00606 · Fim

Domina o básico. Tudo o resto é variação.

📧 geral@aulify.pt
Aulify · Componente Tecnológica · Cursos Profissionais