给定记录的连续若干天的气温值,请分别输出每天和所有天的温度值高于0的平均值。 输入 若干行整数,表示连续若干所测得的气温值,同行数据之间空格分隔。 输出 输出每天的每日零上温度平均值和全部零上温度平均值,保留2位小数。输入格式见输出举例。 样例输入 Copy 10 8 3 -1 -5 -10 2 5 7 11 9 1 -3 -6 -3 1 5 7 2 -4 0 2 -4 -1 3 7 8 0 -1 -2 -3 -4 6 1 -2 0 3 5 4 3 2 1 0 -1 -2 -3 -4 0 2 4 6 8 5 3 -1 -2 -3 1 2 3 0 -1 -2 样例输出 Copy 第1天零上气温平均为6.22℃ 第2天零上气温平均为3.75℃ 第3天零上气温平均为5.00℃ 第4天无零上气温 第5天零上气温平均为3.75℃ 第6天零上气温平均为2.50℃ 第7天零上气温平均为4.67℃ 第8天零上气温平均为2.00℃ 8天全部零上气温平均为4.41℃ 提示 当输入为: 0 -1 -2 0 -3 -4 -5 输出应当为: 第1天无零上气温 1天全部无零上气温,用Python解答
时间: 2024-02-24 21:56:22 浏览: 106
温度预测数据集(每日平均气温)
以下是Python3的解答:
```python
# 读入气温序列
temp = []
while True:
try:
line = input().strip()
if line == '':
break
temp += list(map(int, line.split()))
except:
break
n = len(temp) # 总天数
zero_days = [] # 记录零上气温的天数
sum_temp = 0 # 记录所有零上气温的和
# 遍历所有天数
for i in range(n):
if temp[i] > 0:
zero_days.append(i+1)
sum_temp += temp[i]
# 计算第i天零上气温的平均值
avg_temp = round(sum_temp / len(zero_days), 2) # 保留两位小数
print("第{}天零上气温平均为{}℃".format(i+1, avg_temp))
else:
print("第{}天无零上气温".format(i+1))
# 计算所有零上气温的平均值
if len(zero_days) == 0:
print("全部无零上气温")
else:
avg_temp = round(sum_temp / len(zero_days), 2)
print("{}天全部零上气温平均为{}℃".format(len(zero_days), avg_temp))
```
注意,在读入气温序列时,我们使用了一个无限循环的结构,然后在输入结束时退出循环,这是因为Python的`input()`函数在输入结束时会抛出`EOFError`异常,我们可以利用这个异常来判断输入是否结束。同时,在输出格式中,我们使用了字符串的`format()`方法来进行格式化输出。
阅读全文