欢迎访问宙启技术站
智能推送

用Python编写一个简单的天气预报程序

发布时间:2023-12-04 08:55:04

天气预报是一种常见的应用程序,它可以提供当前和未来几天的天气信息。使用Python编写一个简单的天气预报程序可以帮助用户获取当前位置或指定城市的天气信息。以下是一个可以使用的Python代码示例,用于获取天气信息并将其显示在控制台上。

首先,我们需要导入适当的库和模块来进行天气预报的工作。我们将使用requests库来获取实时天气数据,使用json模块来解析返回的JSON数据。

import requests
import json

接下来,我们将定义一个函数get_weather_data(city)来获取指定城市的天气数据。这个函数将使用OpenWeatherMap的API来获取天气信息。我们需要在OpenWeatherMap的网站上注册一个API密钥,并将其存储在变量API_KEY中。

API_KEY = "YOUR_API_KEY"

def get_weather_data(city):
    base_url = "http://api.openweathermap.org/data/2.5/weather"
    params = {
        "q": city,
        "appid": API_KEY,
        "units": "metric"
    }
    response = requests.get(base_url, params=params)
    data = response.json()
    return data

在这个函数中,我们构建了一个URL,使用requests.get()方法发起一个GET请求,并将返回的数据解析为JSON格式。

接下来,我们将定义一个函数display_weather(data)来显示天气信息。这个函数将从data中提取所需的信息,并将其显示在控制台上。

def display_weather(data):
    if data["cod"] == "404":
        print("City not found.")
    else:
        city_name = data["name"]
        country = data["sys"]["country"]
        current_temp = data["main"]["temp"]
        temp_min = data["main"]["temp_min"]
        temp_max = data["main"]["temp_max"]
        humidity = data["main"]["humidity"]
        weather_desc = data["weather"][0]["description"]

        print(f"Weather in {city_name}, {country}:")
        print(f"Current temperature: {current_temp}°C")
        print(f"Temperature range: {temp_min}°C - {temp_max}°C")
        print(f"Humidity: {humidity}%")
        print(f"Weather description: {weather_desc}")

在这个函数中,我们首先检查返回的数据中是否有错误,如果没有错误,我们将提取所需的信息,并将其显示在控制台上。

最后,我们将编写一个简单的使用例子来演示如何使用这个天气预报程序。在这个例子中,我们将使用输入函数来获取用户输入的城市名称,并调用上述函数来获取和显示天气信息。

city = input("Enter city name: ")
weather_data = get_weather_data(city)
display_weather(weather_data)

这是一个简单的天气预报程序的Python代码示例。请注意,这个程序只提供了最基本的天气信息,您可以根据自己的需求扩展它,例如添加气温趋势、风速等其他信息。另外,请确保在使用OpenWeatherMap API时遵守其使用条款和条件。