Capítulo 08: Funções 🪓❄️
Neste capítulo, vamos aprender a criar blocos de código reutilizáveis chamados Funções, com o tema God of War!
📖 O que são Funções?
Uma função é um bloco de código que só é executado quando é chamado. Você pode passar dados, conhecidos como parâmetros, para uma função. Uma função pode retornar dados como resultado.
Veja como funciona a nossa função de cálculo de dano:
graph LR A["📥 Entradas (Parâmetros): poder_base, furia"] --> B["⚙️ Função: calcular_dano"] B --> C["📤 Saída (Retorno): dano_total"]
📖 Exemplo Guiado: Ataque do Kratos
Vamos criar uma função que calcula o dano causado por um ataque do Kratos, baseado no poder base e em um multiplicador de fúria.
- Crie o arquivo
ataque_kratos.pyna pastasrc/:
# Definindo a função
def calcular_dano(poder_base, furia):
dano_total = poder_base * furia
return dano_total
# Chamando a função
dano1 = calcular_dano(50, 1.5)
print("Dano do ataque com fúria leve:", dano1)
dano2 = calcular_dano(50, 3.0)
print("Dano do ataque com fúria ESPARTANA!:", dano2)🕹️ Como Executar e Testar no VS Code
- Abra o arquivo
ataque_kratos.py. - Clique no botão Run Python File.
Resultado Esperado:
Dano do ataque com fúria leve: 75.0
Dano do ataque com fúria ESPARTANA!: 150.0🛠️ Prática Obrigatória 1: Barra de Vida
Crie um programa chamado barra_vida.py com uma função que receba a vida atual e a vida máxima de um personagem e retorne uma string representando a barra de vida (ex: “HP: 50/100”).
🛠️ Prática Obrigatória 2: Melhoria de Arma
Crie um programa chamado melhoria_arma.py com uma função que receba o nível atual do Machado Leviatã e retorne o custo em recursos para o próximo nível (Custo = Nível * 100).
🔑 Gabarito de Código
Prática 1: barra_vida.py
def exibir_vida(atual, maxima):
return f"HP: {atual}/{maxima}"
print(exibir_vida(80, 100))
print(exibir_vida(20, 100))Prática 2: melhoria_arma.py
def calcular_custo(nivel_atual):
return nivel_atual * 100
nivel = int(input("Digite o nível atual do machado: "))
print("Custo para a próxima melhoria:", calcular_custo(nivel), "Hacksilver")📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
(Siga o mesmo padrão do Capítulo 01)