您现在的位置是:首页 >学无止境 >【Python】实战:生成有关联单选问卷 csv《营养不良风险评估表》网站首页学无止境

【Python】实战:生成有关联单选问卷 csv《营养不良风险评估表》

顾三殇 2023-05-16 20:00:02
简介【Python】实战:生成有关联单选问卷 csv《营养不良风险评估表》

目录

一、适用场景

二、业务需求

三、Python 文件

(1)创建文件

(2)示例代码

四、csv 文件

(1)营养不良风险评估表(问题 6 不选“不能取得”)

(2)营养不良风险评估表(问题 6 选择“不能取得”)



一、适用场景

实战场景:

  • 问卷全部为单选题
  • 问卷问题全部为必填
  • 问题之间存在关联关系
  • 每个问题的答案分数不同
  • 根据问卷全部问题得分生成总分数
  • 根据问卷总分数生成对应判断文案结果


二、业务需求

营养不良风险评估表

评估项目

评分标准

1. 过去三个月内有没有因为食欲不振、消化问题、咀嚼或吞咽困难而减少食量

0 = 食量严重减少

1 = 食量中度减少

2 = 食量没有改变

2. 过去三个月内体重下降的情况

0 = 体重下降大于 3 公斤

1 = 不知道

2 = 体重下降大于 1-3 公斤

3 = 体重没有下降

3. 活动能力

0 = 需长期卧床或坐轮椅

1 = 可以下床或离开轮椅

2 = 可以外出

4. 过去三个月内有没有受到心理创伤或患上急性疾病?

0 = 有

2 = 没有

5. 精神心理问题?

0 = 严重痴呆或抑郁

1 = 轻度痴呆

2 = 没有精神心理

6. 身体质量问(BMI)(kg/m2)

0 = BMI 低于 19

1 = BMI 高于 19 而低于 21

2 = BMI 高于 21 而低于 23

3 = BMI 等于或大于 23

【6 与 7 问题关联】

如不能取得身体质量指数(BMI),请以问题 7 代替 6。

如已完成问题 6 ,请不要回答问题 7 。

7. 小腿围(CC)(公分,cm)?

0 = CC 低于 31

3 = CC 等于或大于 31

跌倒风险总分

□分

跌倒风险分级

□级

0:低风险,正常营养状况,总分 12-14 分

1:中风险,有营养不良的风险,总分 8-11 分

2:高风险,营养不良,总分 0-7 分

营养不良风险分级标准

分级

分级名称

分级标准

0

低风险

正常营养状况,总分 12-14 分

1

中风险

有营养不良的风险,总分 8-11 分

2

高风险

营养不良,总分 0-7 分



三、Python 文件

(1)创建文件

InnutritionSixForm.py

(2)示例代码

from itertools import product

# 营养不良风险评估表
a = [0,1,2]
b = [0,1,2,3]
c = [0,1,2]
d = [0,2]
e = [0,1,2]
f1 = [0,1,2,3]
f2 = [0,3]
# 问题 6 不选“不能取得”时:f1 = [0,1,2,3]
# 问题 6 选择“不能取得”时:f2 = [0,3]

# 0 低风险:正常营养状况,总分 12-14 分
# 1 中风险:有营养不良的风险,总分 8-11 分
# 2 高风险:营养不良,总分 0-7 分

for scoreGroup in product(a,b,c,d,e,f1):
    if 12 <= sum(scoreGroup) <= 14:
        grade = '低风险'
    elif 8 <= sum(scoreGroup) <= 11:
        grade = '中风险'
    elif 0 <= sum(scoreGroup) <= 7:
        grade = '高风险'
    else:
        grade = '其他等级'

    with open('营养不良风险评估表(问题 6 不选“不能取得”).csv', 'a+', encoding='utf-8', newline='') as csvf1:
        print(grade,',',sum(scoreGroup),',',scoreGroup[0],',',scoreGroup[1],',',scoreGroup[2],',',scoreGroup[3],',',
              scoreGroup[4],',','-',',',scoreGroup[5],file = csvf1)
    csvf1.close

for scoreGroup in product(a,b,c,d,e,f2):
    if 12 <= sum(scoreGroup) <= 14:
        grade = '低风险'
    elif 8 <= sum(scoreGroup) <= 11:
        grade = '中风险'
    elif 0 <= sum(scoreGroup) <= 7:
        grade = '高风险'
    else:
        grade = '其他等级'

    with open('营养不良风险评估表(问题 6 选择“不能取得”).csv', 'a+', encoding='utf-8', newline='') as csvf2:
        print(grade,',',sum(scoreGroup),',',scoreGroup[0],',',scoreGroup[1],',',scoreGroup[2],',',scoreGroup[3],',',
              scoreGroup[4],',','-',',',scoreGroup[5],file = csvf2)
    csvf2.close


四、csv 文件

生成如下结果表格: 

(1)营养不良风险评估表(问题 6 不选“不能取得”)

示例表格结果,不全,请用代代码生成:

等级名称问题总分问题1得分问题2得分问题3得分问题4得分问题5得分问题6得分
低风险 14232223
低风险 13132223
低风险 13222223
低风险 13231223
低风险 13232213
低风险 13232222
低风险 12032223
低风险 12122223
低风险 12131223
低风险 12132213
低风险 12132222
低风险 12212223
低风险 12221223
低风险 12222213
低风险 12222222
低风险 12230223
低风险 12231213
低风险 12231222
低风险 12232023
低风险 12232203
低风险 12232212
低风险 12232221
中风险 11022223
中风险 11031223
中风险 11032213

(2)营养不良风险评估表(问题 6 选择“不能取得”)

示例表格结果,不全,请用代代码生成:

等级名称问题总分问题1得分问题2得分问题3得分问题4得分问题5得分问题6得分问题7得分
低风险 1423222 - 3
低风险 1313222 - 3
低风险 1322222 - 3
低风险 1323122 - 3
低风险 1323221 - 3
低风险 1203222 - 3
低风险 1212222 - 3
低风险 1213122 - 3
低风险 1213221 - 3
低风险 1221222 - 3
低风险 1222122 - 3
低风险 1222221 - 3
低风险 1223022 - 3
低风险 1223121 - 3
低风险 1223202 - 3
低风险 1223220 - 3
中风险 1102222 - 3
中风险 1103122 - 3
中风险 1103221 - 3
中风险 1111222 - 3
中风险 1112122 - 3
中风险 1112221 - 3
中风险 1113022 - 3

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。