Pular para o conteúdo

A primeira escola especializada em tecnologia do Alto Solimões, com corpo técnico formado na área.

Módulo 5: Funções

Funções; Fundamentos

Crie funções com def, type hints é parâmetros

O que é uma função?

Função é um bloco de código com nome que você define uma vez e usa quantas vezes precisar. Em vez de copiar e colar o mesmo trecho, você chama a função pelo nome.

Funções organizam o código em pedacos menores, facilitam a reutilização e tornam tudo mais fácil de testar. Toda função em Python começa com def, seguida do nome, dos parâmetros entre parênteses e de dois pontos.

Função simples sem retorno

Quando a função só executa algo (como imprimir), o retorno e None:

def saudar() -> None:
print("Olá, bem-vindo ao curso!")

saudar() # → Olá, bem-vindo ao curso!

Função com parâmetros e retorno

Use type hints nos parâmetros (: tipo) e no retorno (-> tipo):

def somar(a: int, b: int) -> int:
return a + b

resultado: int = somar(3, 5)
print(resultado) # → 8
def calcular_media(notas: list[float]) -> float:
return sum(notas) / len(notas)

média: float = calcular_media([8.5, 7.0, 9.2])
print(f"Media: {média:.1f}") # → Media: 8.2
def e_aprovado(nota: float) -> bool:
return nota >= 7.0

print(e_aprovado(8.5)) # → True
print(e_aprovado(5.0)) # → False

Valores padrão

Parâmetros com valor padrão se tornam opcionais na chamada:

def saudar(nome: str, saudação: str = "Olá") -> str:
return f"{saudação}, {nome}!"

print(saudar("Ana")) # → Olá, Ana!
print(saudar("Bruno", "Bom dia")) # → Bom dia, Bruno!
def calcular_desconto(preco: float, percentual: float = 10.0) -> float:
desconto: float = preco * (percentual / 100)
return preco - desconto

print(calcular_desconto(100.0)) # → 90.0 (desconto padrão 10%)
print(calcular_desconto(100.0, 25.0)) # → 75.0 (desconto 25%)

Keyword arguments

Você pode passar argumentos pelo nome, sem se preocupar com a ordem:

def criar_perfil(nome: str, idade: int, cidade: str = "Manaus") -> str:
return f"{nome}, {idade} anos, mora em {cidade}"

print(criar_perfil("Ana", 25))
# → Ana, 25 anos, mora em Manaus

print(criar_perfil(idade=30, nome="Bruno", cidade="São Paulo"))
# → Bruno, 30 anos, mora em São Paulo

Retornando multiplos valores

Python permite retornar vários valores de uma vez usando tupla:

def calcular_estatisticas(notas: list[float]) -> tuple[float, float, float]:
média: float = sum(notas) / len(notas)
maior: float = max(notas)
menor: float = min(notas)
return média, maior, menor

média, maior, menor = calcular_estatisticas([8.5, 7.0, 9.2, 6.8])
print(f"Media: {média:.1f}") # → Media: 7.9
print(f"Maior: {maior}") # → Maior: 9.2
print(f"Menor: {menor}") # → Menor: 6.8

Exercício prático

Crie funções para um sistema de notas:

  1. calcular_media(notas) -- recebe lista de float, retorna a média
  2. classificar(média) -- retorna "Aprovado" se >= 7, senao "Reprovado"
  3. exibir_resultado(nome, notas) -- usa as outras duas e imprime o resultado
# 1. def calcular_media(notas: list[float]) -> float:

# 2. def classificar(média: float) -> str:

# 3. def exibir_resultado(nome: str, notas: list[float]) -> None:

# Teste:
# exibir_resultado("Ana", [8.5, 7.0, 9.2])
# → Ana: 8.2 - Aprovado

Referências

Testa o que você leu

4 perguntas sobre esta aula. Errar aqui não custa nada - a explicação vem junto da correção.

Pergunta 1 de 4
Qual é a sintaxe correta de uma função com type hints?