Python的学习笔记案例8--空气质量指数计算1.0
这是微信上小象学院Python入门课程的最后一个案例,从第一个案例到现在已经1年多,还是没有把这8个案例学完很愧疚,中间有自己的偷懒和拖延,或者其他的原因,但这些都不是理由,从今天开始要认真重视起来学习,Python已经到了白银时期再不努力就过时了。
废话少说,开始学习最后一个案例,先来两张截图,然后介绍计算的方法:
第一张图片是介绍各个分项污染物值对应总的质量指数的值,一个对照表吧;
第二张图片是如何求各个污染物分指数的计算公式,和总的空气质量指数是各个分指数的最大值。
如果没有看明白,那么再来一张图片。
最后,就是代码的呈现,主要计算了PM2.5和CO的分指数,再通过这个俩个分指数求最大值得到空气质量指数。
一个主函数,将带入的变量带入求最大值的函数cal_aqi;
一个求最大值的函数cal_aqi,函数里面调用计算PM2.5的分指数的函数cal_pm_iaqi和CO的分指数的函数cal_co_iaqi;
一个计算PM2.5的函数cal_pm_iaqi
一个计算CO的函数cal_co_iaqi
"""作者:lanxingbudui日期:2019-10-26 最近成文20200215早晨5点功能:AQI计算版本:1.0
"""def cal_linear(iaqi_lo, iaqi_hi, bp_lo, bp_hi, cp):"""范围缩放"""iaqi = (iaqi_hi - iaqi_lo) * (cp - bp_lo) / (bp_hi - bp_lo) + iaqi_loreturn iaqidef cal_pm_iaqi(pm_val):"""计算PM2.5的IAQI"""if 0 <= pm_val < 36:iaqi = cal_linear(0, 50, 0, 35, pm_val)elif 36 <= pm_val < 76:iaqi = cal_linear(50, 100, 35, 75, pm_val)elif 76 <= pm_val < 116:iaqi = cal_linear(100, 150, 75, 115, pm_val)elif 116 <= pm_val < 151:iaqi = cal_linear(150, 200, 115, 150, pm_val)elif 151 <= pm_val < 251:iaqi = cal_linear(200, 300, 150, 250, pm_val)elif 251 <= pm_val < 351:iaqi = cal_linear(300, 400, 250, 350, pm_val)elif 351 <= pm_val < 501:iaqi = cal_linear(400, 500, 350, 500, pm_val)else:passreturn iaqidef cal_co_iaqi(co_val):"""计算CO的IAQI"""if 0 <= co_val < 3:iaqi = cal_linear(0, 50, 0, 2, co_val)elif 3 <= co_val < 5:iaqi = cal_linear(50, 100, 2, 4, co_val)elif 5 <= co_val < 15:iaqi = cal_linear(100, 150, 4, 14, co_val)elif 15 <= co_val < 25:iaqi = cal_linear(150, 200, 14, 24, co_val)elif 25 <= co_val < 37:iaqi = cal_linear(200, 300, 24, 36, co_val)elif 37 <= co_val < 49:iaqi = cal_linear(300, 400, 36, 48, co_val)elif 49 <= co_val < 61:iaqi = cal_linear(400, 500, 48, 60, co_val)else:passreturn iaqidef cal_aqi(param_list):"""AQI计算"""pm_val = param_list[0]co_val = param_list[1]pm_iaqi = cal_pm_iaqi(pm_val)co_iaqi = cal_co_iaqi(co_val)iaqi_list = [pm_iaqi, co_iaqi]aqi = max(iaqi_list)return aqidef main():"""主函数"""passprint('请输入以下信息,用空格分割')input_str = input('(1)PM2.5 (2)CO:')str_list = input_str.split(' ')pm_val = float(str_list[0])co_val = float(str_list[1])param_list = [pm_val, co_val]# 调用AQI计算函数cal_aqi(param_list)aqi_val = cal_aqi(param_list)print('空气质量指数为:{}'.format(aqi_val))if __name__ == '__main__':main()
Python的学习笔记案例8--空气质量指数计算1.0相关推荐
- Python的学习笔记案例8--空气质量指数计算9.0
倒数第二节课了,本节课主要讲获取数据之后,数据处理与数据分析,利用Pandas进行数据处理分析. 什么是Pandas? 一个强大的分析结构化数据的工具集(结构化数据:csv,json.非结构化数据:声 ...
- Python的学习笔记案例8--空气质量指数计算6.0
前面几节讲到网络爬虫,但是在分析数据时效率不高. 鉴于网页中HTML的树形结构,我们可以引入一个新的库--BeautifulSoup4用于解析HTML或XML. 如何安装第三方库:BeautifulS ...
- python空气质量指数计算_Python的学习笔记案例8--空气质量指数计算5.0
之前都是使用提前准备好的文件来获取数据,时效性很差. 为了更有效.更快地获取并利用网络信息并工作提高效率,出现了网络爬虫. 利用网络爬虫实时获取城市的空气质量指数. 什么是网络爬虫? 自动抓取互联网信 ...
- Python的学习笔记案例6--判断密码强度1.0
密码强度:是指一个密码对抗财产或者暴力破解的有效程度:一般是指一个未授权访问者得到正确密码的平均尝试次数. 强密码可以降低安全漏洞的整体风险. 简易版(常用)规则: 1.密码长度至少8位 ...
- 【小象学院】案例8——空气质量指数计算v7.0
功能需求: 将获取的所有城市空气质量保存成csv数据文件 代码实现: 运行结果:
- (八)空气质量指数计算1.0
案例描述 空气质量指数计算方法 空气质量分指数计算方法 (individual air quality index (IAQI):单项污染物的空气质量指数) 空气质量指数计算方法 (airqualit ...
- python的学习笔记案例3--基础代谢率计算1.0
基础代谢率(简称:BMR)是指:我们在安静状态下消耗的最低热量,人的其他活动都建立在这个基础上. 计算公式: BMR(男) = (13.7*体重(kg)) + (5.0*身高(cm)) - (6.8* ...
- python的学习笔记案例1--汇率兑换1.0
一.python程序元素: 缩进 注释----加入说明信息,不被执行.单行以"#"开头:多行使用""" """ 三组双 ...
- python的学习笔记案例1--汇率兑换4.0
汇率兑换4.0:可以调用函数进行汇率兑换 """作者:lanxingbudui版本:4.0功能:汇率兑换日期:2018-12-10新增功能:根据输入判断是人民币还是美元, ...
- Python的学习笔记案例3--基础代谢率计算2.0
前面v1.0将入参都是写死的,这样程序的交互性很不好,v2.0希望需要用户输入参数,并希望可以程序循环运行. 下面上代码: """作者:lanxingbudui功能:BM ...
最新文章
- 剑指offer:扑克牌顺子
- 小猿圈之git 的几个好用自定义命令
- SpringMVC 类扫描原理解析
- Linux Shell 中 > 和 >> 的异同点和应用场景
- 查询附近的人——GEO
- NumPy 数组学习手册·翻译完成
- matlab 曲线拐点_如何用matlab把一组数据模拟一个函数图像?并找出曲线拐点?...
- Opencv的KeyPoint和DMatch数据结构
- c语言中运用空语句的延时函数,【转载】单片机C语言中_nop_函数的使用及C语言的延时计算...
- html5控制字大小的代码,js根据字符串长度控制字体大小代码
- ▷Scratch课堂丨scratch初级-3-模拟相遇问题
- 【微信开发6】专属推广二维码 java+SpringBoot
- 软件自动升级解决方案(一)
- 完美解决小米随身wifi创建网络失败
- docker仓库mysql所有版本_Docker 安装 MySQL8.0
- 【进程、线程和进程间通信】(三)进程间通信
- 2022K班结对编程任务
- 闽南师范大学计算机系实力,这5所地方师范大学实力挺强,在本地很受认可,性价比高...
- 【Linux】四、Linux 进程概念(上篇)
- 每天学点5G-5G UDM
热门文章
- linux没有cpufreq目录,【原创】Linux cpufreq framework
- win7远程服务器管理工具
- OpenSSL下载及使用(生成公钥 私钥)
- iOS App Store 审核 other 处理、解决办法 The review of your app is taking longer than expected
- (二)使用selenium爬取拉钩招聘网信息并存入csv文件
- 寻仙手游维护公告服务器停服更新,寻仙手游6月7日停服更新公告
- 2021大厂Java高级面试题及答案,附面试答案
- web注释@WebService,@WebMethod,@Oneway,@WebParam
- 【论文】360-aware saliency estimation with conventional image saliency predictors阅读笔记
- 用STAR法则写简历