# 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.
# 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
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á {}.
{}
# Conta até 5 i = 1 while i <= 5: print(i) i += 1
# Range for i in range(1, 6): print(i) # Iterar lista fruta = ["maçã", "pêra", "banana"] for f in fruta: print(f)
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
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}")
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
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).
calcular_imposto
enviar_email
validar_nif
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!"
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()
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+.
f-string
f"..."
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.")
# 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.
with