【每天学点Python】案例八:空气质量指数计算

V1.0功能:AQI计算

案例描述:

案例分析:

  • 实现步骤:

    1. 实现每种污染物对应的AQI函数,一个输入参数,即Cp
    2. 实现线性缩放函数,5个输入参数

上机实验:

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # author: Kevin.Wang
 4 # time  : 2018/10/16
 5
 6
 7 """
 8     作者:王鑫正
 9     版本:1.0
10     日期:2018/10/16
11     功能:AQI计算
12 """
13
14
15 def cal_linear(iaqi_lo, iaqi_hi, bp_lo, bp_hi, cp):
16     """
17         范围缩放
18     """
19     iaqi = (iaqi_hi - iaqi_lo) * (cp - bp_lo) / (bp_hi - bp_lo) + iaqi_lo
20     return iaqi
21
22
23 def cal_pm_iaqi(pm_val):
24     """
25         计算PM2.5的IAQI
26     """
27     if 0 <= pm_val < 35:
28         iaqi = cal_linear(0, 50, 0, 35, pm_val)
29     elif 35 <= pm_val < 75:
30         iaqi = cal_linear(50, 100, 35, 75, pm_val)
31     elif 75 <= pm_val < 115:
32         iaqi = cal_linear(100, 150, 75, 115, pm_val)
33     else:
34         pass
35
36     return iaqi
37
38
39 def cal_co_iaqi(co_val):
40     """
41         计算CO的IAQI
42     """
43     if 0 <= co_val < 3:
44         iaqi = cal_linear(0, 50, 0, 3, co_val)
45     elif 3 <= co_val < 5:
46         iaqi = cal_linear(50, 100, 2, 4, co_val)
47
48     else:
49         pass
50
51     return iaqi
52
53
54 def cal_aqi(para_list):
55     """
56         AQI计算
57     """
58     pm_val = para_list[0]
59     co_val = para_list[1]
60
61     pm_iaqi = cal_pm_iaqi(pm_val)
62     co_iaqi = cal_co_iaqi(co_val)
63
64     iaqi_list = []
65     iaqi_list.append(pm_iaqi)
66     iaqi_list.append(co_iaqi)
67
68     aqi = max(iaqi_list)
69     return aqi
70
71
72 def main():
73     """
74         主函数
75     """
76     print(‘请输入以下信息,用空格分隔‘)
77     input_str = input(‘(1)PM2.5 (2)CO:‘)
78     str_list = input_str.split(‘ ‘)
79     pm_val = float(str_list[0])
80     co_val = float(str_list[1])
81
82     para_list = []
83     para_list.append(pm_val)
84     para_list.append(co_val)
85
86     # 调用AQI计算函数
87     aqi_val = cal_aqi(para_list)
88
89     print(‘空气质量指数为:{}‘.format(aqi_val))
90
91
92 if __name__ == ‘__main__‘:
93     main()

原文地址:https://www.cnblogs.com/Kevin-WangXinzheng/p/9801041.html

时间: 2024-08-16 01:59:17

【每天学点Python】案例八:空气质量指数计算的相关文章

python获取国内城市30天内空气质量指数(AQI)

环保部的网站改了,原来的链接没有了,发送请求的方式也稍微改了一些. 1 #!/usr/bin/env python3 2 # -*- coding: utf-8 -*- 3 # 获取国内城市 30天内 每天空气质量指数(AQI) 4 # 数据来源:中华人民共和国环境保护部 5 import requests 6 from bs4 import BeautifulSoup 7 import datetime 8 9 ref_url = 'http://datacenter.mep.gov.cn:8

孤荷凌寒自学python第八十六天对selenium模块进行较详细的了解

(今天由于文中所阐述的原因没有进行屏幕录屏,见谅) 为了能够使用selenium模块进行真正的操作,今天主要大范围搜索资料进行对selenium模块的学习,并且借2019年的新年好运居然在今天就来了,还在学习Python的过程中就接到一个任务,完成了第一个真正有实用价值的作品,大大增强了信心,也对Python爬取内容,操纵网页的能力有了真切的体会. 一.首先真诚感谢以下文章作者的无私分享: 查找到html页面标签对象方法的参考 https://www.cnblogs.com/zhuque/p/8

为什么偏偏是你学不好Python呢?论学习方法

首先我给大家讲下初学者学习Python的一个整体规划. 首先定位:知道如今的市场行情,需要掌握什么技能才能找到一份Python开发的工作,现在公司需要什么人才,这个就是你学习的一个方向. 系统的学习规划:你要知道自己每天学习什么,因为接触过的新手比较多,很多人学着学着就放弃,或者他们不知道自己在学习什么,这样非常迷茫一点计划没有,肯定是学不会Python的,所以学习Python要知道每天学习什么,做什么案例.创一个小群,供大家学习交流聊天如果有对学python方面有什么疑惑问题的,或者有什么想说

入门:《教孩子学编程 Python语言版》中英文PDF+代码

工作需要看过这本书,书中以turtle绘图展开,吸引学生兴趣,引入点非常好,安利也比较有意思好理解,但是有部分案例不太符合中国情况,还需要再改一改,总之是一本学习编程的好书 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.这门强大的语言如今在大学和Google.IBM等大型技术公司广泛使用.<教孩子学编程 Python语言版>是一本父母和老师教孩子使用Python进行基础程序设计和解决问题的入门图书.书通过科学合理的结构.通俗易懂的文字.活泼有趣的图示,帮助孩子学习计算机的

福利分享:《21天学通Python》电子书籍分享

本书共分三篇 第一篇介绍Python语言的特点.安装.语法基础.程序流程控制.面向过程的编程方法.面向对象的编程方法.程序异常的处理: 第二篇介绍了Python语言中的包与模块.迭代器.生成器.装饰器.上下文管理器等进阶语法,同时介绍了使用Python标准库中的文件系统处理.图形化界面编程.正则表达式.网络编程.多进(线)程编程.数据库编程.此外,还介绍了运用第三方库的Web网站编程.图片处理: 第三篇通过两个案例介绍Python的综合编程技术. 在内容上涉及面广,从基本操作到高级技术及综合案例

Python入门《父与子的编程之旅第2版》+《教孩子学编程Python语言版》

无论有无编程基础,无论大人小孩,学习编程语言,建议首选Python.初次接触Python,或者想快速应用Python完成一些任务,建议学习<父与子的编程之旅第2版>电子书和<教孩子学编程Python语言版>电子书. 对于孩子们来说,纯粹的数学计算并不是那么的有趣:而能够做出一个看得到的东西,则是一件很有成就感的事情.<父与子的编程之旅第2版>电子书在七分之一的篇幅处即引入了GUI的概念和实际例子,在四分之一的篇幅处即告知孩子们“游戏时间到了”,让孩子们可以自己敲击代码来

Python资料学习《疯狂Python讲义》+《教孩子学编程Python语言版》+《Python编程导论第2版》

适合初学者入门,适合Python就业,包含网络编程.数据分析.网络爬虫等大量企业实用的知识.建议学习<疯狂Python讲义>电子书和<教孩子学编程Python语言版>电子书,并进行配套的代码测试. <疯狂Python讲义>电子书适合初学者入门,适合Python就业,包含网络编程.数据分析.网络爬虫等大量企业实用的知识. <疯狂Python讲义>电子书第一部分系统讲解了Python的基本语法结构.Python的函数编程.Python的类和对象.模块和包.异常处

微信营销案例八 游戏式营销

案例八:1号店 游戏式营销 1号店在微信当中推出了“你画我猜”活动,将活动方式是,用户通过关注1号店的微信账号,每天1号店就会推送一张图片给订阅用户,然后,用户可以会发答案来参与到这个游戏当中来.如果猜中图片答案并且在所规定的名额范围内的就可以获得奖品. 其实“你画我猜”的概念是来自于火爆的App游戏Draw  Something,并非1号店自主研发,只是1号店首次把游戏的形式结合到微信活动推广中来. 微信营销案例八 游戏式营销,布布扣,bubuko.com

从零开始学ios开发(八):Autorotation and Autosizing

不好意思,这一篇间隔的时间有点长,最近实在是事情太多,耽搁了,好了,长话短说,下面继续学习ios. 这次学习的内容是Autorotation和Autosizing,Autorotation就是屏幕内容自动旋转,因为iphone有重力感应系统(陀螺仪???),屏幕的内容会随着用户手握iphone的方式(竖着握Portrait.横着握Landscape)而改变,这个相信大家都已经有所体会,Autosizing是指当iphone的屏幕旋转后,屏幕里面控件的大小和位置也会自动改变.好了,下面跟着例子继续