写一个程序满足下列条件: 用户输入数据文件名 程序读取文件中的数据并分别统计 总人次 、 男 女人 数 、男 女 RBC 平 均 和 WBC 平均 7 个统计指标 统计 各 有效检查 次数 的人数;按升 序输出 检查次数最多 的人员编号 <
时间: 2024-05-08 20:18:25 浏览: 17
我了解您需要编写一个程序,实现从用户输入的数据文件中读取数据,进行数据统计,输出指定的统计指标。以下是实现该功能的示例代码,您可以进行参考。
```python
# 定义数据项的下标
INDEX_GENDER = 1
INDEX_AGE = 2
INDEX_RBC = 3
INDEX_WBC = 4
INDEX_CHECKUP_COUNT = 5
# 定义统计指标项的名称
ITEMS = ["总人次", "男人数", "女人数", "男RBC平均", "女RBC平均", "男WBC平均", "女WBC平均"]
# 从用户输入中读取数据文件名
filename = input("请输入数据文件名:")
# 初始化统计指标列表
stats = [0] * 7 # 总人次、男人数、女人数、男RBC平均、女RBC平均、男WBC平均、女WBC平均
# 定义字典,保存检查次数对应的人员编号列表
checkup_count_dict = {}
# 打开数据文件,依次读取每行数据
with open(filename, "r") as f:
for line in f.readlines():
data = line.strip().split("\t")
gender = data[INDEX_GENDER]
rbc = float(data[INDEX_RBC])
wbc = float(data[INDEX_WBC])
checkup_count = int(data[INDEX_CHECKUP_COUNT])
age = int(data[INDEX_AGE])
# 统计指标
stats[0] += 1 # 总人次+1
if gender == "男":
stats[1] += 1 # 男人数+1
stats[3] = (stats[3] * (stats[1] - 1) + rbc) / stats[1] # 男RBC平均
stats[5] = (stats[5] * (stats[1] - 1) + wbc) / stats[1] # 男WBC平均
elif gender == "女":
stats[2] += 1 # 女人数+1
stats[4] = (stats[4] * (stats[2] - 1) + rbc) / stats[2] # 女RBC平均
stats[6] = (stats[6] * (stats[2] - 1) + wbc) / stats[2] # 女WBC平均
else:
continue
# 统计有效检查次数
if checkup_count not in checkup_count_dict:
checkup_count_dict[checkup_count] = []
checkup_count_dict[checkup_count].append(age) # 根据题意,人员编号使用年龄代替
# 输出统计结果
print("统计结果:")
for i in range(len(ITEMS)):
print("{}\t{}".format(ITEMS[i], stats[i]))
# 输出检查次数最多的人员编号列表
print("\n检查次数最多的人员编号:")
for count in sorted(checkup_count_dict.keys()):
ids = checkup_count_dict[count]
ids.sort()
for age in ids:
print(age, end=" ")
print()
```
在运行该代码时,请保证您已经准备好了要分析的数据文件。程序会提示您输入数据文件名,并根据该文件中的数据进行统计分析。最后,程序会输出指定的统计指标值,以及出现最多的检查次数对应的人员编号列表。