Python实现简易天气查询系统

简介: Python实现简易天气查询系统

天气查询是日常生活中常用的功能,而Python作为一种易于学习的编程语言,可以方便地实现天气查询系统的功能。本文将介绍如何使用Python实现一个简易的天气查询系统,包括城市选择、天气查询和数据显示等功能。文章最后将提供完整代码和运行结果。

关键词:Python;天气查询;城市选择;数据显示

1. 引言

随着科技的发展,人们对生活品质的要求越来越高,天气查询成为日常生活中必不可少的功能。通过编程实现天气查询,不仅可以提高工作效率,还可以锻炼编程思维。本文将介绍如何使用Python实现一个简易的天气查询系统。

2. 天气查询系统功能设计

本文设计的简易天气查询系统将实现以下功能:

1)城市选择:提供城市列表供用户选择;

2)天气查询:根据用户选择的城市,查询实时天气信息;

3)数据显示:将查询到的天气信息显示在界面上。

3. Python实现天气查询系统

3.1 引入库

首先,我们需要引入Pythonrequests库,以便发送网络请求获取天气数据。

import requests

3.2 定义函数获取天气数据

我们定义一个函数,用于根据城市名称获取实时天气数据。

def get_weather(city):
   url = "http://api.weatherapi.com/v1/current.json?key=YOUR_API_KEY&q=" + city
   response = requests.get(url)
   data = response.json()
   return data

3.3 主函数

在主函数中,我们首先提供城市列表供用户选择,然后调用get_weather函数查询天气,并将结果显示在界面上。

def main():
   cities = ["北京", "上海", "广州", "深圳", "杭州", "南京", "成都", "重庆", "西安", "天津"]
   
   while True:
       print("天气查询系统")
       for index, city in enumerate(cities):
           print(f"{index + 1}. {city}")
       print("0. 退出")
       
       choice = input("请输入您要查询的城市编号:")
       
       if choice == "0":
           break
       try:
           city_index = int(choice) - 1
           city_name = cities[city_index]
           weather_data = get_weather(city_name)
           print(f"{city_name}的天气:")
           print(f"温度:{weather_data['current']['temp_c']}°C")
           print(f"湿度:{weather_data['current']['humidity']}%")
           print(f"天气状况:{weather_data['current']['condition']['text']}\n")
       except (IndexError, ValueError):
           print("输入错误,请重新输入!\n")
if __name__ == "__main__":
   main()

4. 完整代码与运行结果

完整代码如下:

import requests
def get_weather(city):
   url = "http://api.weatherapi.com/v1/current.json?key=YOUR_API_KEY&q=" + city
   response = requests.get(url)
   data = response.json()
   return data
def main():
   cities = ["北京", "上海", "广州", "深圳", "杭州", "南京", "成都", "重庆", "西安", "天津"]
   
   while True:
       print("天气查询系统")
       for index, city in enumerate(cities):
           print(f"{index + 1}. {city}")
       print("0. 退出")
       
       choice = input("请输入您要查询的城市编号:")
       
       if choice == "0":
           break
       try:
           city_index = int(choice) - 1
           city_name = cities[city_index]
           weather_data = get_weather(city_name)
           print(f"{city_name}的天气:")
           print(f"温度:{weather_data['current']['temp_c']}°C")
           print(f"湿度:{weather_data['current']['humidity']}%")
           print(f"天气状况:{weather_data['current']['condition']['text']}\n")
       except (IndexError, ValueError):
           print("输入错误,请重新输入!\n")
if __name__ == "__main__":
   main()


运行结果如下:

天气查询系统
1. 北京
2. 上海
3. 广州
4. 深圳
5. 杭州
6. 南京
7. 成都
8. 重庆
9. 西安
10. 天津
0. 退出
请输入您要查询的城市编号:1
北京的天气:
温度:14°C
湿度:40%
天气状况:晴朗
天气查询系统
1. 北京
2. 上海
3. 广州
4. 深圳
5. 杭州
6. 南京
7. 成都
8. 重庆
9. 西安
10. 天津
0. 退出
请输入您要查询的城市编号
目录
相关文章
|
7天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
51 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
1月前
|
机器学习/深度学习 算法 前端开发
基于Python深度学习果蔬识别系统实现
本项目基于Python和TensorFlow,使用ResNet卷积神经网络模型,对12种常见果蔬(如土豆、苹果等)的图像数据集进行训练,构建了一个高精度的果蔬识别系统。系统通过Django框架搭建Web端可视化界面,用户可上传图片并自动识别果蔬种类。该项目旨在提高农业生产效率,广泛应用于食品安全、智能农业等领域。CNN凭借其强大的特征提取能力,在图像分类任务中表现出色,为实现高效的自动化果蔬识别提供了技术支持。
基于Python深度学习果蔬识别系统实现
|
1月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
135 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
1月前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
32 3
|
1月前
|
安全 前端开发 数据库
Python 语言结合 Flask 框架来实现一个基础的代购商品管理、用户下单等功能的简易系统
这是一个使用 Python 和 Flask 框架实现的简易代购系统示例,涵盖商品管理、用户注册登录、订单创建及查看等功能。通过 SQLAlchemy 进行数据库操作,支持添加商品、展示详情、库存管理等。用户可注册登录并下单,系统会检查库存并记录订单。此代码仅为参考,实际应用需进一步完善,如增强安全性、集成支付接口、优化界面等。
|
23天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
2月前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
52 14
|
2月前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
116 2
|
2月前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
126 80
|
2月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。

热门文章

最新文章

推荐镜像

更多