基于Python的天气查询程序
开发
如何实现一个简单的基于Python的天气查询程序
在本篇文章中,我们将学习如何创建一个天气查询程序。借助第三方API服务,我们能够获取当前的天气信息并展示给用户。本教程面向Python初学者,逐步教授开发过程。
所需服务和工具
- Python环境(建议使用Python 3.x)
- 第三方天气API:推荐使用 OpenWeatherMap
- HTTP请求库:
requests
(可通过pip install requests
安装)
功能概述
该程序可以:
- 允许用户输入城市名称。
- 查询并返回该城市当前的天气状况及气温。
- 输出信息以人类可读的形式显示。
步骤1:注册以及获取API密钥
- 在 OpenWeatherMap 的官方网站注册账号。
- 登录并生成一个 API 密钥,用于验证你的请求。
步骤2:安装必要的库
打开命令行/终端,并输入以下命令以安装 requests
库:
pip install requests
requests
是一个优秀的 HTTP 请求库,可以帮助我们与 API 进行交互。
步骤3:编写 Python 脚本
以下是完整代码,将分步骤说明:
import requests
def get_weather_data(city_name, api_key):
"""
通过 OpenWeatherMap API 获取天气信息。
参数:
city_name (str): 查询的城市名称
api_key (str): API密钥
返回:
dict: 天气数据的字典形式
"""
base_url = "http://api.openweathermap.org/data/2.5/weather"
params = {
"q": city_name,
"appid": api_key,
"units": "metric" # 使用摄氏度
}
response = requests.get(base_url, params=params)
if response.status_code == 200:
return response.json()
else:
print(f"Error: Unable to fetch data for {city_name}. HTTP Status Code: {response.status_code}")
return None
def display_weather_info(weather_data):
"""
打印天气信息。
参数:
weather_data (dict): 天气数据
"""
if weather_data:
city = weather_data.get("name", "Unknown")
country = weather_data["sys"].get("country", "Unknown")
temperature = weather_data["main"]["temp"]
description = weather_data["weather"][0]["description"]
print(f"City: {city}, Country: {country}")
print(f"Temperature: {temperature}°C")
print(f"Weather Description: {description.capitalize()}")
else:
print("No weather information to display.")
def main():
print("===== Weather Query Program =====")
api_key = input("Enter your OpenWeatherMap API key: ")
city_name = input("Enter the city name: ")
weather_data = get_weather_data(city_name, api_key)
display_weather_info(weather_data)
if __name__ == "__main__":
main()
功能的详细说明
-
获取天气数据:
- 使用
requests.get()
发起 HTTP 请求,用户名输入的城市名称将作为参数发送到 API。 units=metric
指定采用摄氏度;默认是开尔文。
- 使用
-
错误处理:
- 如果请求失败,程序会打印错误信息并返回。
-
展示信息:
- 提取关键字段如城市名称、国家名称、当前温度和天气描述,并格式化输出。
-
用户输入:
- 用户在终端中输入城市名称以及 API 密钥。
步骤4:运行程序
- 保存代码文件,命名为
weather_query.py
。 - 打开终端,输入以下命令运行脚本:
python weather_query.py
- 按提示输入你的API密钥和城市名称。
当输入有效城市名称时,程序将输出天气状况。例如:
===== Weather Query Program =====
Enter your OpenWeatherMap API key: YOUR_API_KEY_HERE
Enter the city name: London
City: London, Country: GB
Temperature: 13.5°C
Weather Description: Clear sky
额外扩展功能
-
支持多语言返回结果:
- 修改 API 的
lang
参数,支持返回中文或其他语言描述。 - 例如,使用
lang=zh
参数,天气描述将变为中文。
- 修改 API 的
-
保存查询记录:
- 将查询的天气信息存储到文本文件。
- 示例代码:
with open("weather_log.txt", "a") as file: file.write(f"{city} - Temperature: {temperature}°C, Weather: {description}\n") print("Weather information saved successfully!")
结束语
这个天气查询程序是一个基础示例,帮助你熟悉 API 交互和 HTTP 请求库的使用。在此基础上,你可以添加更多功能,例如预测天气、支持多城市查询等。希望你能从中学到新技能!
编辑:一起学习网