1 changed files with 58 additions and 0 deletions
@ -0,0 +1,58 @@ |
|||
# pip install requests colorama colorterm |
|||
import requests |
|||
from colorama import Fore, Style, init |
|||
#inicializace barev v CMD (terminálu) |
|||
init(autoreset=True) |
|||
#Klíč získate na https://home.openweathermap.org/api_keys |
|||
API_KEY = "cdcbb82b14e8e3e85117686c68e19a5b" |
|||
|
|||
def ziskej_pocasi(mesto): |
|||
# & = AltGR + C |
|||
url1 = f"https://api.openweathermap.org/data/2.5/weather" |
|||
url2 = f"?q={mesto}&appid={API_KEY}&units=metric&lang=cz" |
|||
url = url1 + url2 |
|||
print(f"Otevírám: {url}") |
|||
try: |
|||
response = requests.get(url) |
|||
response.raise_for_status() |
|||
data = response.json() |
|||
return data |
|||
except requests.exceptions.HTTPError: |
|||
return "Město nebylo nalezeno. Zkontroluj překlepy..." |
|||
except Exception as e: |
|||
return f"Došlo k chybě: {e}" |
|||
|
|||
if __name__ == "__main__": |
|||
print(Fore.CYAN+ "--- OPEN WEATHER MAP ukázka ---") |
|||
print("tento program ti zjisti aktualní počasí v libovolném městě (možná i vesnici)") |
|||
|
|||
if API_KEY == "API_KLIC": |
|||
print(Fore.RED + "\nPOZOR: Musiíš do proměné API_KEY vložit API klíč z OWM") |
|||
exit() |
|||
|
|||
while True: |
|||
mesto_input = input(Fore.YELLOW + "\nZadej název města (nebo 'q' pro konec): ") |
|||
|
|||
if mesto_input.lower() in ["q","konec","exit","quit"]: |
|||
print("Děkujeme za použítí programu") |
|||
break |
|||
|
|||
if mesto_input: |
|||
print(f"Zjištuji počasí pro {mesto_input}") |
|||
vysledek = ziskej_pocasi(mesto_input) |
|||
print("-"*30) |
|||
#zjistíme jestli data jsou jako JSON(počasí) nebo jako string(chyba) |
|||
if isinstance(vysledek, dict): |
|||
#vytahneme data z JSONu |
|||
teplota = vysledek["main"]["temp"] |
|||
pocitova_teplota = vysledek["main"]["feels_like"] |
|||
popis = vysledek["weather"][0]["description"] |
|||
vlhkost = vysledek["main"]["humidity"] |
|||
print(f"Město: {Fore.GREEN}{vysledek["name"]}") |
|||
print(f"Počasí: {Fore.BLUE}{popis.capitalize()}") |
|||
print(f"Teplota: {Fore.RED}{teplota}°C") |
|||
print(f"Pocitová teplota: {pocitova_teplota}°C") |
|||
print(f"Vlhkost vzduchu: {vlhkost}%") |
|||
else: |
|||
print(Fore.RED + vysledek) |
|||
print("-"*30) |
|||
Loading…
Reference in new issue