🚀 Capítulo 06: Capturando Pokémons
NOTE
Este capítulo utiliza a temática de Pokémon para explicar os parâmetros de funções em Python, incluindo valores padrão. Aprenda a flexibilizar as suas funções!
🎯 Objetivo da Aula
Compreender como passar diferentes tipos de parâmetros para funções em Python, incluindo parâmetros posicionais, parâmetros nomeados e valores padrão.
🏢 O Cenário Prático (Seu Desafio)
Um mestre Pokémon está explorando o mapa e encontra um monstrinho selvagem. Para capturá-lo, ele joga uma Pokébola. Algumas Pokébolas são normais, outras são Great Balls (mais fortes). E cada Pokémon tem um nível.
No Python, quando criamos funções, podemos definir que alguns parâmetros são obrigatórios e outros são opcionais (ganham um valor padrão se o usuário não digitar nada). Seu desafio é criar a função de captura perfeita!
🧠 Fundamentos: A Teoria Traduzida
🎯 1. Parâmetros Posicionais (Obrigatórios):
São os parâmetros normais. A ordem em que você passa os valores importa!
def registrar_pokemon(nome, level):
print(f"Registrado: {nome} no nível {level}")
registrar_pokemon("Pikachu", 5)🎁 2. Valores Padrão (Opcionais):
Você pode definir um valor padrão usando o sinal de igual = na criação da função. Se quem chamar a função não passar esse dado, o Python usa o padrão!
def capturar(pokemon, bola="Pokébola normal"):
print(f"Capturou {pokemon} usando uma {bola}!")
capturar("Charmander") # Usa o padrão: Pokébola normal
capturar("Mewtwo", "Master Ball") # Ignora o padrão e usa Master BallAtenção: Os parâmetros com valor padrão devem ficar sempre por último na lista de parâmetros!
📖 Exemplo Guiado: A Batalha
Vamos criar uma função com parâmetros nomeados para ficar mais claro:
def atacar(pokemon_atacante, pokemon_defensor, golpe="Investida"):
print(
f"{pokemon_atacante} usou {golpe} contra {pokemon_defensor}!"
)
# Podemos passar os parâmetros fora de ordem se dissermos o nome deles!
atacar(
pokemon_defensor="Squirtle",
pokemon_atacante="Pikachu",
golpe="Choque do Trovão",
)🛠️ Prática Obrigatória 1: Criando a Função
- Escreva uma função chamada
curarque receba o parâmetropokemone o parâmetroquantidade(este último com o valor padrão ). A função deve imprimir"Curando [pokemon] em [quantidade] pontos de vida."
🛠️ Prática Obrigatória 2: Usando o Padrão
- Como você chamaria a função
curarcriada acima passando apenas o nome"Bulbasaur"(deixando o valor padrão de cura agir)?
📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
Neste curso, você entregará suas atividades enviando o código para o seu repositório no GitHub usando o aplicativo GitHub Desktop. Siga o passo a passo detalhado:
- Verifique a estrutura: Certifique-se de que sua estrutura de pastas final está idêntica à mostrada abaixo.
- Abra o GitHub Desktop: Certifique-se de que o repositório do seu curso está selecionado no canto superior esquerdo.
- Visualize as alterações: Na aba Changes (à esquerda), você verá todos os arquivos que criou ou modificou nesta aula.
- Faça o Commit:
- No campo Summary (na parte inferior esquerda), digite uma mensagem curta descrevendo o que fez, ex:
Finaliza atividades do Capítulo. - Clique no botão azul Commit to main (ou o nome da sua branch).
- No campo Summary (na parte inferior esquerda), digite uma mensagem curta descrevendo o que fez, ex:
- Envie para a Nuvem (Push): No topo da tela, clique no botão Push origin. Isso enviará seu código do seu computador para o seu perfil no GitHub.
- ⚠️ IMPORTANTE (Repositório Público): Para que o professor consiga corrigir, o seu repositório no GitHub DEVE SER PÚBLICO. Repositórios privados não podem ser visualizados por quem não foi convidado.
- Como entregar no Microsoft Teams:
- Copie o link do seu repositório no GitHub (ex:
https://github.com/seu-usuario/seu-repositorio). - Abra a tarefa correspondente no Microsoft Teams.
- Clique no botão Adicionar trabalho (ou Add work).
- Selecione a opção Link no menu lateral.
- Cole o link do GitHub no campo “Endereço Web” e digite um texto (ex:
Meu Repositório) no campo “Texto a ser exibido”. - Clique em Anexar.
- MUITO IMPORTANTE: Clique no botão Entregar (ou Turn in) no canto superior direito para concluir o envio!
- Copie o link do seu repositório no GitHub (ex:
📂 Estrutura de Pastas
spec_backend_com_python_e_fastapi/
├── capitulos/
│ └── capitulo_06_pokemon.md💡 Checkpoint de Lógica
Os parâmetros nomeados (como golpe="Choque do Trovão") deixam o seu código muito mais legível quando a função recebe muitos dados, pois quem está lendo sabe exatamente o que é cada valor!
🔥 Desafio de Fixação (Opcional)
Pesquise o que significam os símbolos *args e **kwargs em funções Python (Dica: servem para receber uma quantidade infinita de parâmetros!).
🔑 Gabarito de Código/Fórmulas
Gabarito da Prática 1:
def curar(pokemon, quantidade=20):
print(f"Curando {pokemon} em {quantidade} pontos de vida.")Gabarito da Prática 2:
curar("Bulbasaur")