#pip install matplotlib pillow requests termcolor import requests import random import os from io import BytesIO #modul pro vytvoření virtualního souboru v RAM from PIL import Image from termcolor import colored import matplotlib.pyplot as plt def nahodny_pokemon(): print("--- Generátor náhodného Pokémona ---") poke_id = random.randint(1,151) url = f"https://pokeapi.co/api/v2/pokemon/{poke_id}" print(f"Začínám hledat pokemona s id:{colored(poke_id,"blue")}") try: #odeslání požadavku response = requests.get(url) response.raise_for_status() #zpracování dat data = response.json() #zpracujeme detaily (pokeapi vrací decimety a hektogramy) jmeno = data["name"].capitalize() vaha_kg = data["weight"] / 10 vyska_m = data["height"] / 10 #obrazek_url = data["sprites"]["front_default"] obrazek_url = data["sprites"]["other"]["official-artwork"]["front_default"] typy = [t["type"]["name" ] for t in data["types"]] #výpis print(f"Objevil se {colored(jmeno,"green")}") print("-----------------------------------------") print(f"Typ: {typy}") print(f"Výška: {vyska_m} m") print(f"Váha: {vaha_kg} kg") print(f"Obrázek: {obrazek_url}") #Stažení a zobrazení obrázku if obrazek_url: print(f"Stahuji obrázek pro {jmeno}...") img_response = requests.get(obrazek_url) img_response.raise_for_status() #načtení obrázku do paměti a otevření z paměti (Bez ukládání na disk) image_data = BytesIO(img_response.content) img = Image.open(image_data) print(f"Zobrazuji obrázek. Zavřete okno pro pokračování..") #zobrazení pomocí Matplitlib plt.figure(figsize=(5,5)) plt.imshow(img) plt.title(jmeno) plt.axis("off") plt.show() print("okno zavřeno, pokračuji") else: print("\n Obrázek není k dispozici") except Exception as e: print(f"chyba: {e}") if __name__ == "__main__": nahodny_pokemon()