Article image
Luiz Café
Luiz Café10/01/2024 18:09
Compartilhe

Aprendendo as Funções IF e WHILE em Python com a ajuda de Pokémon

  • #Python

Olá comunidade da DIO!

Pokémon fez parte da minha infância e acredito que pode ter feito parte da sua também. Assistir as aventuras de Ash Ketchum e seu Pikachu era meu passatempo favorito. Porém, eu não sabia que, alguns anos depois, Pokémon me ajudaria a dominar conceitos fundamentais dentro da linguagem de programação Python: as funções.

Talvez você me pergunte, como Pokémon pode me ajudar a aprender sobre as funções em Python? 

E ainda mais especificamente, as funções IF e WHILE?

É justamente isso que este artigo vai apresentar! Venha aprender mais sobre as funções em Python utilizando uma das maiores franquias do mundo como referência!

Neste artigo você vai aprender:

  • O que são funções em Python?
  • Função IF na prática no contexto de Pokémon;
  • Função WHILE na prática no contexto de Pokémon;
  • Considerações Finais.

O que são Funções em Python?

image

No universo Pokémon o objetivo principal de cada treinador e capturar o maior número de monstrinhos que for possível. Cada um deles possui poderes diferentes que combinados podem fazer com que um treinador conquiste muitas vitórias e se torne um verdadeiro Mestre Pokémon.

Agora no contexto do mundo da programação em Python, cada ataque que um Pokémon pode fazer é conhecido como função em Python, ou seja, uma função é a capacidade de um código executar determinada ação e que deve possuir um nome em específico.

De acordo com a documentação oficial da linguagem, Python possui a capacidade de executar diversas funções em seu interpretador bem como nos chamados tipos embutidos.

Vejamos com exemplo o Pokémon Blaziken, ele é muito poderoso e pode executar diversos ataques, ou seja, funções. Veja um exemplo:

import random


def lanca_chamas(inimigo):
  # Gera um número aleatório para representar a força do ataque
  ataque_especial = random.randint(10, 100)


  print(f"Blaziken usa Lança Chamas com uma força de {ataque_especial}!")


  # Verifica se o ataque foi forte o suficiente para derrotar o inimigo
  if ataque_especial >= 60:
      print(f"{inimigo} foi derrotado!")
      return True
  else:
      print(f"{inimigo} resistiu ao Lança Chamas!")
      return False


# Exemplo de uso da função
inimigo = "Pokémon Inimigo"
resultado = lanca_chamas(inimigo)


# Você pode verificar o resultado para decidir o que fazer em seguida, por exemplo:
if resultado:
  print("Você venceu essa batalha! Parabéns!")
else:
  print("Agora é a vez do ataque inimigo. Tome cuidado !")




Explicando o código:

Neste código temos a utilização das funções em Python para simular uma batalha Pokémon. Nela utilizamos um ataque de Blaziken como exemplo, no caso o Lança Chamas.

O primeiro passo é utilizar o import para importar uma biblioteca para dentro do código, no caso a biblioteca foi random, que é capaz de gerar números aleatórios. Ela é muito útil, principalmente para facilitar o desenvolvimento de códigos e promove a reutilização de código fazendo com que o processo se torne mais fácil.

Logo após, para que o ataque funcione precisamos criar uma função, para isso utilizamos def e damos o nome da função de lanca_chamas e ainda definimos um parâmetro que chamamos de inimigo. O parâmetro será utilizado para identificar qual Pokémon deverá ser atacado pelo Blaziken.

Continuando a explicação do código temos a função ataque_especial que terá seu valor atribuído graças a função random.randint(10, 100) cujo objetivo é gerar um número aleatório entre 10 e 100. Ele vai indicar qual é a força do ataque especial de Blaziken.

Por fim temos a função print, que irá imprimir uma mensagem na tela indicando que Blaziken está atacando o Pokémon inimigo com uma força que foi gerada aleatoriamente na função anterior do código.

Agora chegou o momento de saber se Blaziken é forte o suficiente para derrotar um Pokémon inimigo, para isso, utilizamos a função if, que, atendendo determinadas condições nos dirá se Blaziken venceu ou não a batalha.

No caso se o ataque for maior ou igual a 60 o inimigo foi derrotado, deve retornar TRUE e Blaziken venceu a batalha! Caso essa condição não seja atendida e a condição for FALSE, isso significa que o ataque não foi suficiente e Blaziken não venceu, ele deve se preparar para receber o golpe do inimigo.

Essa foi a explicação do código aplicado ao mundo Pokémon. Agora podemos continuar a aprender mais.

Agora que você entendeu como funciona uma função poderemos avançar e entender sobre duas funções em específico, IF e WHILE.

Escapando da Equipe Rocket com a Função IF em Python

image

Uma das coisas que mais me irritava em Pokémon era a chamada Equipe Rocket. Ela atrapalhava várias vezes a vida de Ash e outros treinadores roubando seus Pokémon. Porém, para que isso não ocorra podemos utilizar uma função muito importante chamada IF.

Ela pode ajudar a prevenir os treinadores sobre a presença da equipe Rocket e assim evitar que seus Pokémon sejam roubados.

Veja um exemplo da função IF com este exemplo:

import random


def verificador_equipe_rocket():
  # Gerar um valor aleatório entre True e False
  equipe_rocket_esta = random.choice([True, False])


  # Verificando se a Equipe Rocket está presente
  if equipe_rocket_esta:
      print("Cuidado! A Equipe Rocket está presente. Mude a rota!")
  else:
      print("Não há sinal da Equipe Rocket. Seus Pokémon estão seguros!")


# Chamar a função para realizar testes
verificador_equipe_rocket()


Explicando o código

Mais uma vez fazemos o uso de import para utilizar a biblioteca random, que neste caso vai escolher entre um valor aleatório booleano (TRUE ou FALSE) , que são muito úteis para comparar valores.

Logo após, utilizamos def para definir o valor da função verificador_equipe_rocket . Utilizamos random.choice para gerar um valor aleatório entre TRUE e FALSE que ficará guardado na variável equipe_rocket_esta.

Neste código simples temos a aplicação simples da função if. Ela é utilizada para verificar se a Equipe Rocket está presente. Se for verdade TRUE a mensagem exibida na tela, imprimida pela função print será: "Cuidado! A Equipe Rocket está presente. Mude a rota!").

Caso seja o contrário utilizamos else para que outra mensagem seja imprimida pelo print, neste caso (" Não sinal da Equipe Rocket. Seus Pokémon estão seguros!").

E no fim do código realizamos um teste com a função verificador_equipe_rocket, garantindo que todo o código que faz parte da função será executado.

Como você pode ler, a função IF é muito utilizada quando temos que verificar se determinada condição é atendida para então, podermos tomar uma decisão.

Agora falta apenas mais uma função para continuarmos nossa jornada pelo mundo das funções em Python! Vamos embarcar no aprendizado do WHILE?

Evoluindo os Pokémon com a Função WHILE em Python

image

A prática leva a perfeição e em Pokémon não é diferente. Por isso, alguns treinadores ficam horas e horas treinando seus Pokémon para que eles se tornem cada vez mais fortes. Para entender melhor como cada Pokémon pode melhorar suas habilidades, utilizamos a função WHILE, que em uma tradução livre podemos traduzir como enquanto.

Essa função é muito utilizada para criar estruturas de repetição. O código irá executar determinada ação, enquanto determinada condição for verdadeira. É preciso tomar cuidado para evitar a criação dos chamados loops infinitos, que caso não tenha uma condição de parada no código, ele irá ser executado continuamente consumindo memória sem necessidade e ainda pode acontecer problemas como travamentos.

Dessa maneira sempre crie um código Python, utilizando WHILE com uma condição de parada previamente estabelecida.

Agora que você já entendeu o que a função WHILE é capaz de fazer vamos aplicar na prática?

Podemos criar um exemplo a partir da seguinte situação:

Um treinador acabou de iniciar sua jornada e seu primeiro Pokémon é Bulbasaur. Ele tem o sonho de ver seu Pokémon evoluir para Venusaur no futuro. Porém, para que isso seja possível é preciso muito treinamento.

Outra informação importante é que Bulbasaur possui outro estágio de evolução antes de chegar até a sua forma final, ele precisa ser um Ivysaur primeiro para então evoluir para Venusaur.

Agora, como podemos aplicar este cenário utilizando a função WHILE?

Veja no código a seguir:

def treinamento_bulbasaur():
  bulbasaur_nivel = 1
  experiencia = 0


  while bulbasaur_nivel < 16:  # Bulbasaur evolui no nível 16
      print(f"Bulbasaur está no nível {bulbasaur_nivel} e ganhou {experiencia} de experiência.")


      # Simula o ganho de experiência durante o treinamento
      experiencia += 5
      bulbasaur_nivel += 1


  print("Bulbasaur evoluiu para Ivysaur!")


def treinamento_ivysaur():
  ivysaur_nivel = 17
  experiencia = 0


  while ivysaur_nivel < 32:
      experiencia +=  1
      ivysaur_nivel += 17
      print("Ivysaur evoluiu para Venusaur ")


# Exemplo de uso da função
treinamento_bulbasaur()
treinamento_ivysaur()

Explicando o Código

Utilizamos o laço de repetição WHILE em Python para acompanhar a jornada de evolução do Bulbasaur até se tornar um Venusaur. Para isso ele teve que evoluir primeiro para um Ivysaur para enfim se tornar Venusaur.

É preciso fazer algumas observações importantes:

  • Para se tornar um Ivysaur, Bulbasaur precisa atingir o nível 16;
  • Para se tornar Venusaur, Ivysaur precisa atingir o nível 32.

Conhecendo essas condições foi possível criar o código em Python acima.

Para isso foi utilizado def para definir a função treinamento_bulbasaur. Ela possui duas variáveis:

  • bulbasaur_nivel, cujo valor é 1;
  • experiencia, cujo valor é 0.

Após essa parte utilizamos o loop while, em que, enquanto a condição determinada for verdadeira, ou seja, o nível do Bulbasaur for menor que 16 ele deverá continuar treinando até evoluir para Ivysaur. Dentro código existem valores 5 e 1 respectivamente, simulando o ganho de experiência e de nível respectivamente.

Quando ele evolui para Ivysaur o processo se repete, até que ele se torne um Venusaur.

Considerações Finais

Chegamos ao fim deste artigo e você acabou de conhecer o que são funções em Python com uma ajuda de Pokémon. Foi apresentado duas funções fundamentais em Python: IF e WHILE elas podem fazer diversas coisas importantes como você pode ler.

Além disso, também podemos conhecer a importância do import para importar bibliotecas e de def para definir valores. Você também aprendeu sobre valores booleanos TRUE e FALSE e os cuidados que devemos ter com o loop infinito.

Continue sua jornada de aprendizado sobre funções em Python, tenha muita prática e evolua suas habilidades para se tornar um verdadeiro mestre da programação em Python. A aventura é longa mais vale muito a pena!

Bons estudos!

Referências

AWARI. Função While Python: Aprenda a utilizar a estrutura de repetição while em Python. Disponível em: <https://awari.com.br/funcao-while-python-aprenda-a-utilizar-a-estrutura-de-repeticao-while-em-python/>. Acesso em 10/01/2024;

BLOG BE TRYBE. Python If Else: como usar essa estrutura condicional? . Disponível em: <https://blog.betrybe.com/python/if-else/>. Acesso em 10/01/2024;

HASHTAG TREINAMENTOS. Import no Python - Como Funciona? Explicação Definitiva. Disponível em: <https://www.hashtagtreinamentos.com/import-no-python>. Acesso em 10/01/204;

PENSE PYTHON. Funções. Disponível em: <https://panda.ime.usp.br/pensepy/static/pensepy/05-Funcoes/funcoes.html>. Acesso em: 10/01/2024;

POKEMOTHIM. Curiosidades Pokémon: Bulbasaur, Ivysaur e Venusaur. Disponível em: <https://www.pokemothim.net/2017/11/curiosidades-pokemon-bulbasaur-ivysaur.html>. Acesso em: 10/01/2024.

PYTHON DOCUMENTAÇÃO OFICIAL. Funções Embutidas. Disponível em: <https://docs.python.org/pt-br/3/library/functions.html>. Acesso: 10/01/2024.

Compartilhe
Comentários (3)
Luiz Café
Luiz Café - 11/01/2024 15:09

Obrigado Thiago e Fernando! É muito importante ensinar programação de maneira lúdica, desconstruindo o mito que programar é difícil. Acredito que programação é para todos que desejam aprender.

Fernando Araujo
Fernando Araujo - 11/01/2024 09:57

Ótimo artigo, Luiz!

Usando contexto lúdico para explicar programação. Gostei disso!

Deu para explicar algoritmos, funções, comandos de Python e contar a história dos Pokemons.


Thiago Jesus
Thiago Jesus - 10/01/2024 18:13

Usaram minha referência cultural pop preferida, muito didático! Obrigado.