O for que você disse que tem dois valores está apenas desestruturando o retorno de pokemon.items(), que é basicamente um objeto retornando chave e valor em uma tupla, que pode ser iterada no loop for, por exemplo:
pokemon = {
"Taurus": {
"Attack": 45,
"Defense": 45,
"HP": 60,
"Speed": 40,
}
}
Pra cada pokemon ele vai pegar chave e valor e retornar um array com varias tuplas.
pokemon = {
"Taurus": [
("Attack", 45),
("Defense", 45),
("HP", 60),
("Speed", 40)
]
}
Seria esse o retorno, quando voce declara um for com duas variáveis, você tá basicamente dizendo que atributo = "Attack", valor = 45.
Mas é meio inútil você simplesmente jogar um print, porque você não tá salvando esses dados em nenhum lugar, eu faria um pouco diferente.
class Pokemon:
def __init__(self, name, attibutes):
self.name = name
self.attributes = attributes
pokedex = [
(1, Pokemon(
"Bulbasaur", {
"Attack": 49,
"Defense": 49,
"HP": 45,
"Speed": 45
})),
(2, Pokemon(
"Ivysaur", {
"Attack": 49,
"Defense": 49,
"HP": 45,
"Speed": 45
})),
]
Daria pra ser mais eficiente e puxar a pokedex toda de dentro de um JSON e criar uma classe pokedex com métodos para filtrar e encontrar os pokémons a qualquer momento. Mas seguindo esse exemplo acredito que você possa escalar melhor seu código.
ah, eu acho que entendi o for, eu usei print porque não queria que o codigo refizesse isso toda vez que iniciasse o programa, mas só queria automatizar minha tarefa de fazer só uma lista com os 151 em vez de uma lista de listas
Já que acabaste por criar uma classe para criar os pokémons, em vez de armazerar os dados em atributes criaria um atributo para cada dado para ser guardado:
class Pokemon:
def __init__(self, name, atk, defense, hp, speed):
self.name = name
self.Attack = atk
self.Defense = defense
self.HP = hp
self.Speed = speed
pokemon = Pokemon(Bulbasaur, 49, 49, 45, 45)
Assim para acessar os dados passamos depokemon.atributes["Attack"]
parapokemon.Attack
.
Só uma sugestão, na mesma um bom trabalho e espero que aprendas bastante com este projeto.
Cara, só uma ideia que talvez va te ajudar no futuro, ou talvez agora se for bem persistente... Tu poderia mudar a estrutura de como organiza os pokemons pra uma estrutura de arvore pra facilitar a busca depois. Ainda não pensei muito bem em como estruturar nem se da pra implementar, mas adicionaria um desafio a mais e por experiencia propria acho que a sensação de entender como uma arvore binaria funciona é muito boa.