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_lo
return iaqi
def 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:
pass
return iaqi
def 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:
pass
return iaqi
def 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 aqi
def main():
"""
主函数
"""
pass
print(请输入以下信息并用空格分隔。)
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()

版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123





