정보통신기술(ICT)

날씨 소프트웨어 코딩

해머슴 2024. 9. 30. 19:59

 

import tkinter as tk
from tkinter import messagebox
import requests

# OpenWeatherMap API key
API_KEY = '2dd7ff7ea5b32023f96b6490b89ed94b'  # OpenWeatherMap에서 받은 API 키를 입력하세요.

def get_weather():
    city = city_entry.get()
    if not city:
        messagebox.showwarning("입력 오류", "도시 이름을 입력하세요.")
        return
   
    # OpenWeatherMap API URL
    url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={API_KEY}&units=metric"
   
    try:
        response = requests.get(url)
        weather_data = response.json()
       
        if weather_data.get("cod") != 200:
            messagebox.showerror("오류", f"도시를 찾을 수 없습니다: {weather_data.get('message')}")
            return
       
        # 날씨 정보 표시
        city_name = weather_data["name"]
        temperature = weather_data["main"]["temp"]
        description = weather_data["weather"][0]["description"]
       
        result_label.config(text=f"{city_name}의 날씨\n온도: {temperature}°C\n상태: {description}")
   
    except Exception as e:
        messagebox.showerror("오류", f"날씨 데이터를 가져오는데 실패했습니다. {e}")

# Tkinter 창 설정
root = tk.Tk()
root.title("날씨 앱")

# 도시 입력 필드
city_label = tk.Label(root, text="도시 이름:")
city_label.pack(pady=10)

city_entry = tk.Entry(root)
city_entry.pack(pady=5)

# 검색 버튼
search_button = tk.Button(root, text="날씨 검색", command=get_weather)
search_button.pack(pady=10)

# 결과 표시 레이블
result_label = tk.Label(root, text="", font=("Arial", 14))
result_label.pack(pady=20)

# 창 실행
root.geometry("300x250")
root.mainloop()

 

'정보통신기술(ICT)' 카테고리의 다른 글

로그 함수  (0) 2024.10.02
부산의 연간 강수량 예측(1904년 ~ 2023년)  (1) 2024.10.01
단위 계단 함수  (0) 2024.09.27
가우시안 델타 함수  (0) 2024.09.26
다항 함수  (0) 2024.09.25