这是微信上小象学院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相关推荐

  1. Python的学习笔记案例8--空气质量指数计算9.0

    倒数第二节课了,本节课主要讲获取数据之后,数据处理与数据分析,利用Pandas进行数据处理分析. 什么是Pandas? 一个强大的分析结构化数据的工具集(结构化数据:csv,json.非结构化数据:声 ...

  2. Python的学习笔记案例8--空气质量指数计算6.0

    前面几节讲到网络爬虫,但是在分析数据时效率不高. 鉴于网页中HTML的树形结构,我们可以引入一个新的库--BeautifulSoup4用于解析HTML或XML. 如何安装第三方库:BeautifulS ...

  3. python空气质量指数计算_Python的学习笔记案例8--空气质量指数计算5.0

    之前都是使用提前准备好的文件来获取数据,时效性很差. 为了更有效.更快地获取并利用网络信息并工作提高效率,出现了网络爬虫. 利用网络爬虫实时获取城市的空气质量指数. 什么是网络爬虫? 自动抓取互联网信 ...

  4. Python的学习笔记案例6--判断密码强度1.0

    密码强度:是指一个密码对抗财产或者暴力破解的有效程度:一般是指一个未授权访问者得到正确密码的平均尝试次数. 强密码可以降低安全漏洞的整体风险. 简易版(常用)规则:        1.密码长度至少8位 ...

  5. 【小象学院】案例8——空气质量指数计算v7.0

    功能需求: 将获取的所有城市空气质量保存成csv数据文件 代码实现: 运行结果:

  6. (八)空气质量指数计算1.0

    案例描述 空气质量指数计算方法 空气质量分指数计算方法 (individual air quality index (IAQI):单项污染物的空气质量指数) 空气质量指数计算方法 (airqualit ...

  7. python的学习笔记案例3--基础代谢率计算1.0

    基础代谢率(简称:BMR)是指:我们在安静状态下消耗的最低热量,人的其他活动都建立在这个基础上. 计算公式: BMR(男) = (13.7*体重(kg)) + (5.0*身高(cm)) - (6.8* ...

  8. python的学习笔记案例1--汇率兑换1.0

    一.python程序元素: 缩进 注释----加入说明信息,不被执行.单行以"#"开头:多行使用"""  """ 三组双 ...

  9. python的学习笔记案例1--汇率兑换4.0

    汇率兑换4.0:可以调用函数进行汇率兑换 """作者:lanxingbudui版本:4.0功能:汇率兑换日期:2018-12-10新增功能:根据输入判断是人民币还是美元, ...

  10. Python的学习笔记案例3--基础代谢率计算2.0

    前面v1.0将入参都是写死的,这样程序的交互性很不好,v2.0希望需要用户输入参数,并希望可以程序循环运行. 下面上代码: """作者:lanxingbudui功能:BM ...

最新文章

  1. 剑指offer:扑克牌顺子
  2. 小猿圈之git 的几个好用自定义命令
  3. SpringMVC 类扫描原理解析
  4. Linux Shell 中 > 和 >> 的异同点和应用场景
  5. 查询附近的人——GEO
  6. NumPy 数组学习手册·翻译完成
  7. matlab 曲线拐点_如何用matlab把一组数据模拟一个函数图像?并找出曲线拐点?...
  8. Opencv的KeyPoint和DMatch数据结构
  9. c语言中运用空语句的延时函数,【转载】单片机C语言中_nop_函数的使用及C语言的延时计算...
  10. html5控制字大小的代码,js根据字符串长度控制字体大小代码
  11. ▷Scratch课堂丨scratch初级-3-模拟相遇问题
  12. 【微信开发6】专属推广二维码 java+SpringBoot
  13. 软件自动升级解决方案(一)
  14. 完美解决小米随身wifi创建网络失败
  15. docker仓库mysql所有版本_Docker 安装 MySQL8.0
  16. 【进程、线程和进程间通信】(三)进程间通信
  17. 2022K班结对编程任务
  18. 闽南师范大学计算机系实力,这5所地方师范大学实力挺强,在本地很受认可,性价比高...
  19. 【Linux】四、Linux 进程概念(上篇)
  20. 每天学点5G-5G UDM

热门文章

  1. linux没有cpufreq目录,【原创】Linux cpufreq framework
  2. win7远程服务器管理工具
  3. OpenSSL下载及使用(生成公钥 私钥)
  4. iOS App Store 审核 other 处理、解决办法 The review of your app is taking longer than expected
  5. (二)使用selenium爬取拉钩招聘网信息并存入csv文件
  6. 寻仙手游维护公告服务器停服更新,寻仙手游6月7日停服更新公告
  7. 2021大厂Java高级面试题及答案,附面试答案
  8. web注释@WebService,@WebMethod,@Oneway,@WebParam
  9. 【论文】360-aware saliency estimation with conventional image saliency predictors阅读笔记
  10. 用STAR法则写简历