#pip install matplotlib pillow termcolor requests import requests import random import os from io import BytesIO #pro vytvoření "virtualního souboru" v paměti RAM import matplotlib.pyplot as plt from PIL import Image from termcolor import colored def nahodny_pokemon(): print("-- Generator nahodného pokémona (PokeAPI) ---") poke_id = random.randint(1,151) url = f"https://pokeapi.co/api/v2/pokemon/{poke_id}" print(f"Hledám data pro pokémona ID: {colored(poke_id,"green")}") try: response = requests.get(url) response.raise_for_status() data = response.json() jmeno = data["name"].capitalize() #první písmeno velké na začátku slova #obrazek_url = data["sprites"]["front_default"] obrazek_url = data["sprites"]["other"]["official-artwork"]["front_default"] print(f"objevil se {colored(jmeno,"green")}!!!") if obrazek_url: print(f"stahuji obrazek pro {colored(jmeno,"red")}") img_response = requests.get(obrazek_url) #požádáme o data img_response.raise_for_status() #čekáme na odpověd img_data = BytesIO(img_response.content) #odpověd si uložíme do paměti jako virtualní soubor img = Image.open(img_data)#virtualní soubor otevřeme jako obrázek print(f"zobrazuji obrázek pro {colored(jmeno,"blue")}") plt.figure(figsize=(5,5)) plt.imshow(img) plt.title(jmeno) plt.axis("off") #skryje osy plt.show() #zde se kod zastavi, dokud uživatel nezavře okno print("Okno zavřeno, pokračuji...") else: print("obrazek není k dispozici") except Exception as e: print(f"chyba při komunikaci: {e}") if __name__ == "__main__": for i in range(3): nahodny_pokemon()