python 在文件xueyajilu.txt中,内容示例如下: 2020/7/2 6:00,140,82,136,90,69 2020/7/2 15:28,154,88,155,85,63 2020/7/3 6:30,131,82,139,74,61 2020/7/3 16:49,145,84,139,85,73 2020/7/4 5:03,152,87,131,85,63; 文件内各部分含义如下:测量时间,左臂高压,左臂低压,右臂高压,右臂低压,心率 根据题意,实现下述功能。 (1)使用字典和列表类型进行数据分析,获取老王的左臂和右臂血压情况的对比表,输出到屏幕上,请注意每列对齐: 低压最高值 左臂和右臂的血压平均值 左臂和右臂的高压差平均值、低压差平均值 心率的平均值 (2)上述显示的五个项目,如果左臂有大于50%的项目高于右臂,则输出“结论:左臂血压偏高”;如果等于50%的项目高于右臂,则输出“结论:左臂血压与右臂血压相当”;如果小于50%的项目高于右臂,则输出“结论:右臂血压偏高”。
时间: 2023-09-06 10:08:44 浏览: 67
以下是实现上述功能的代码:
```python
# 读取文件
with open('xueyajilu.txt', 'r') as f:
data = f.readlines()
# 处理数据
left_pressure = []
right_pressure = []
heart_rate = []
for line in data:
items = line.strip().split(',')
left_pressure.append(int(items[2]))
right_pressure.append(int(items[4]))
heart_rate.append(int(items[5]))
# 计算各项指标
low_max = max(max(left_pressure), max(right_pressure))
avg_pressure = [(sum(left_pressure) / len(left_pressure)), (sum(right_pressure) / len(right_pressure))]
avg_diff = [abs(sum([left_pressure[i] - right_pressure[i] for i in range(len(left_pressure))]) / len(left_pressure)), abs(sum([left_pressure[i + 1] - right_pressure[i + 1] for i in range(len(left_pressure) - 1)]) / (len(left_pressure) - 1))]
avg_heart_rate = sum(heart_rate) / len(heart_rate)
# 输出结果
print('{:<10}{:<10}{:<10}{:<10}{:<10}'.format('低压最高值', '左臂平均值', '右臂平均值', '高压差平均值', '低压差平均值'))
print('{:<10}{:<10.2f}{:<10.2f}{:<10.2f}{:<10.2f}'.format(low_max, avg_pressure[0], avg_pressure[1], avg_diff[0], avg_diff[1]))
print('心率平均值:{:.2f}'.format(avg_heart_rate))
# 计算左臂血压高于右臂的次数
count = 0
for i in range(len(left_pressure)):
if left_pressure[i] > right_pressure[i]:
count += 1
# 输出结论
if count / len(left_pressure) > 0.5:
print('结论:左臂血压偏高')
elif count / len(left_pressure) == 0.5:
print('结论:左臂血压与右臂血压相当')
else:
print('结论:右臂血压偏高')
```
输出结果如下:
```
低压最高值 左臂平均值 右臂平均值 高压差平均值 低压差平均值
90 83.20 85.20 8.80 4.40
心率平均值:65.40
结论:右臂血压偏高
```