[Python]25行で作るお天気予報プログラム
1.何をするのか
OpenWeatherMapが提供しているAPIを呼び出して、都市のお天気情報出力プログラムを作成します。今回は入力した都市名から以下の5点の情報を出力します。
1. 天気の状態
2. 最高気温
3. 最低気温
4. 寒暖差(直接返ってきた値からではなく、2と3から求めます)
5. 湿度
他にも風向や風の強さ、雲量などを取り出すことができるので、スカイスポーツなど適宜、自身と関わりのある情報を抜き出してみると面白いかもしれません。
2.コード
import requests
city_name = input("都市名を入れてください:")
app_id = "ここにはサイトで登録したapp_idを入力してください"
#&units=metricで摂氏温度を求める
URL = "https://api.openweathermap.org/data/2.5/weather?q={0},jp&units=metric&lang=ja&appid={1}".format(city_name, app_id)
response = requests.get(URL)
data = response.json()
#天気情報
weather = data["weather"][0]["description"]
#最高気温
temp_max = data["main"]["temp_max"]
#最低気温
temp_min = data["main"]["temp_min"]
#寒暖差
diff_temp = temp_max - temp_min
#湿度
humidity = data["main"]["humidity"]
context = {"天気": weather, "最高気温":str(temp_max) + "度", "最低気温": str(temp_min) + "度", "寒暖差": str(diff_temp) + "度", "湿度": str(humidity) + "%"}
print("--{0}'s Weather--".format(city_name))
for k, v in context.items():
print("{0}:{1}".format(k, v))
3.実行結果
東京の天気
都市名を入れてください:Tokyo
--Tokyo's Weather--
天気:曇りがち
最高気温:15度
最低気温:9.6度
寒暖差:5.4度
湿度:58%
和歌山の天気
都市名を入れてください:Wakayama
--Wakayama's Weather--
天気:曇りがち
最高気温:12度
最低気温:11度
寒暖差:1度
湿度:81%
#ハンググライダーでいう所のブットビしそうな気候の日ですね