用python编写如下程序:程序运行显示提示语<请输入文件名>,用户输入数据文件名(用户确保数据文件和程序文件在同一文件夹下),程序打开数据文件并进行分析后,屏幕输出<总人次><男女人数><RBC><WBC>共7个统计指标。显示提示语<检查人次统计如下>并换行,逐行按次数升序输出有效(无人数不输出)检查次数对应人数。显示提示语<检查n次的人按编号从小到大排列如下>并换行,按编号升序逐行输出检查n次的人员编号zID。
时间: 2023-06-14 18:02:55 浏览: 45
```python
# -*- coding:utf-8 -*-
import os
# 输入文件名
file_name = input("请输入文件名:")
# 判断文件是否存在
if not os.path.exists(file_name):
print("文件不存在!")
exit()
# 统计数据
with open(file_name, 'r') as f:
total_num = 0 # 总人次
male_num = 0 # 男性人数
female_num = 0 # 女性人数
rbc_sum = 0 # 红细胞总数
wbc_sum = 0 # 白细胞总数
check_dict = {} # 检查次数对应人数
check_id_dict = {} # 检查次数对应人员编号
for line in f.readlines():
line = line.strip().split(',')
if len(line) != 5:
continue
total_num += 1
if line[0] == 'M':
male_num += 1
elif line[0] == 'F':
female_num += 1
rbc_sum += float(line[3])
wbc_sum += float(line[4])
check_num = int(line[2])
if check_num > 0:
if check_num not in check_dict:
check_dict[check_num] = 1
check_id_dict[check_num] = [int(line[1])]
else:
check_dict[check_num] += 1
check_id_dict[check_num].append(int(line[1]))
# 输出统计结果
print("总人次:{}".format(total_num))
print("男性人数:{},女性人数:{}".format(male_num, female_num))
print("RBC总数:{},WBC总数:{}".format(rbc_sum, wbc_sum))
# 输出检查人次统计
print("检查人次统计如下:")
for check_num in sorted(check_dict):
if check_dict[check_num] > 0:
print("{}次检查:{}人".format(check_num, check_dict[check_num]))
# 输出检查n次的人员编号
check_num = int(input("请输入检查次数:"))
if check_num in check_id_dict:
print("检查{}次的人按编号从小到大排列如下:".format(check_num))
for z_id in sorted(check_id_dict[check_num]):
print(z_id)
else:
print("没有检查{}次的人员".format(check_num))
```
说明:
- 程序假设数据文件的每行数据格式为 `性别,编号,检查次数,红细胞数,白细胞数`,并且每列数据之间用逗号 `,` 分隔。
- 程序先读取数据文件,并统计总人次、男女人数、RBC、WBC 等指标,以及检查次数对应人数和检查次数对应人员编号。
- 统计结果输出到屏幕上,并按要求输出检查人次统计和检查 n 次的人员编号。