I am making a pokemon game and would like to ask the player what attacks they would like to choose.
I have a var named squirtle_attacks
squirtle_attacks = ['bubble', 'tailwhip', 'tackle']
attacks_list = active_p + '_attacks'
choice = que(f'Choose one {attacks_list}')
ignore the que and choice other things
when it prints it says chose one squirtle_attacks when I would like it to say Bubble and water_spin.
Try:
pokemon2attacks = {
"squirtle": ["aqua jet", "bubbles", "water pulse"],
"charmander": ["fire fang", "slash", "flamethrower"]
}
squirtle = "\n- ".join(pokemon2attacks["squirtle"])
print(f"Choose one\n- {squirtle}")
[out]:
Choose one
- aqua jet
- bubbles
- water pulse
Or:
squirtle = "".join([f"\n{str(i+1)}. {a}" for i, a in enumerate(pokemon2attacks["squirtle"])])
print(f"Choose one {squirtle}")
[out]:
Choose one
1. aqua jet
2. bubbles
3. water pulse
Then we get fancy:
import requests
from bs4 import BeautifulSoup
def get_moves(pokemon):
response = requests.get(f"https://pokemondb.net/pokedex/{pokemon}")
bsoup = BeautifulSoup(response.content.decode('utf8'))
moves = {}
for tr in bsoup.find('table', attrs={'class': "data-table"}).find_all('tr'):
headers = ['level', 'name', 'type', 'category', 'power', 'accuracy']
if tr.find_all('td'):
move = {k:v.text for k, v in zip(headers, tr.find_all('td'))}
moves[move['name']] = move
return moves
pokemon = "squirtle"
squirtle_moves = "".join([f"\n{str(i+1)}. {a}" for i, a in enumerate(get_moves(pokemon).keys())])
print(f"Choose one\n{squirtle_moves}")
[out]:
Choose one
1. Tackle
2. Tail Whip
3. Water Gun
4. Withdraw
5. Rapid Spin
6. Bite
7. Water Pulse
8. Protect
9. Rain Dance
10. Aqua Tail
11. Shell Smash
12. Iron Defense
13. Hydro Pump
14. Skull Bash
And a little fancier:
import requests
from bs4 import BeautifulSoup
def get_moves(pokemon, level):
response = requests.get(f"https://pokemondb.net/pokedex/{pokemon}")
bsoup = BeautifulSoup(response.content.decode('utf8'))
moves = {}
for tr in bsoup.find('table', attrs={'class': "data-table"}).find_all('tr'):
headers = ['level', 'name', 'type', 'category', 'power', 'accuracy']
if tr.find_all('td'):
move = {k:v.text for k, v in zip(headers, tr.find_all('td'))}
moves[move['name']] = move
moves_filtered_by_level = {k:v for k,v in moves.items() if int(v['level']) <= level}
return moves_filtered_by_level
pokemon = "squirtle"
availble_moves = get_moves(pokemon, level=10)
squirtle_moves = "".join([f"\n{str(i+1)}. {a}" for i, a in enumerate(availble_moves.keys())])
print(f"Choose one\n{squirtle_moves}")
[out]:
Choose one
1. Tackle
2. Tail Whip
3. Water Gun
4. Withdraw
5. Rapid Spin