1、模拟掷骰子5.0
"""
版本:5.0
功能:科学计算
"""
import matplotlib.pyplot as plt
import numpy as np
#修改一些不能正确输出的文字(解决中文显示问题)
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
def main():
"""
主函数
:return:
"""
total_times=10
#记录筛子1 的结果
roll1_arr=np.random.randint(1,7,size=total_times)
roll2_arr = np.random.randint(1, 7, size=total_times)
result_arr=roll1_arr+roll2_arr
hist,bins=np.histogram(result_arr,bins=range(2,14))
print(hist)
print(bins)
#数据可视化
plt.hist(roll_list,bins=range(2,14),normed=1,edgecolor="black",linewidth=1,rwidth=0.8)
#设置X轴坐标点显示
tick_labels = ['2点', '3点', '4点', '5点',
'6点', '7点', '8点', '9点',
'10点', '11点', '12点'
]
tick_pos = np.arange(2, 13)+0.5
plt.xticks(tick_pos,tick_labels)
plt.title('筛子点数统计')
plt.xlabel('点数')
plt.ylabel('频率')
plt.show()
if __name__ == '__main__':
main()
2、空气质量计算1.0
"""
功能:空气质量测量
版本:1.0
"""
def cal_linear(iaqi,iaqi_hi,bp_hi,val):
"""
线性转换,范围缩放
:return:
"""
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
:param pm_val:
:return:
"""
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)
else:
pass
def cal_co_iaqi(co_val):
"""
计算co的IAQI
:param co_val:
:return:
"""
if 0 <= co_val < 3:
iaqi = cal_linear(0, 50, 0, 3,co_val)
elif 3 <= co_val < 5:
iaqi = cal_linear(50, 100, 3, 4, co_val)
else:
pass
def cal_aqi(param_list):
"""
空气质量计算
:param param_list:
:return:
"""
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=[]
iaqi_list.append(pm_iaqi)
iaqi_list.append(co_iaqi)
aqi=max(iaqi_list)
return aqi
def main():
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=[]
param_list.append(pm_val)
param_list.append(co_val)
#调用AQI函数
aqi_val=cal_aqi(param_list)
print ('空气质量指数为:{}'.format(aqi_val))
if __name__ == '__main__':
main()