上QQ阅读APP看书,第一时间看更新
3.3.2 天气状况分析
【例3-18】 下面是上海某一周各天的最高和最低气温(单位为摄氏度)。其中,第一行为最高气温,第二行为最低气温。
编程,找出这一周中第几天最热(按最高气温计算),最高多少度,这一周中第几天最冷(按最低气温计算),最冷多少度。求出全周各天的平均气温。假设在气象意义上,入春标准是连续5天日均气温超过10℃,根据这一周的气象数据是否能判断上海已经入春?
分析:本题需要求取最高温数据列的最高值和其位置、最低温数据列的最低值和其位置、两个数据列每天气温的平均值及该周气温平均值等。如果单纯用变量和循环来做,程序比较复杂。因此考虑用列表来保存,结合循环来控制程序。在Python中,针对列表数据结构提供了诸如求最大值、最小值、检索元素下标的函数。
那么,只需要运用循环结构来判断是否连续5天日平均气温超过10度,以及周气温平均值了。假设这周各天的日平均气温通过程序运算保存在了列表L3中。通过for循环可以依次访问到列表中的每个元素。设k变量是日均气温超过10度的天数计数器,在访问L3列表的循环体外初始化为0。如果k的值已经大于等于5,则不需要继续判断。只有当k小于5,如果某天日均气温大于等于10度则加1,一旦某天日均气温低于10度,就会被清0。当循环结束,如果k这个连续计数器大于等于5,表明有连续5天的日均气温超过10度。
程序代码:
程序运行结果: