这篇“怎么用Python生成有关联单选问卷”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用Python生成有关联单选问卷”文章吧。
一、适用场景
实战场景:
问卷全部为单选题
问卷问题全部为必填
问题之间存在关联关系
每个问题的答案分数不同
根据问卷全部问题得分生成总分数
根据问卷总分数生成对应判断文案结果
二、业务需求
营养不良风险评估表
| 评估项目 | 评分标准 | ||
|---|---|---|---|
| 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 不选“不能取得”)
示例表格结果,不全,请用代代码生成:
(2)营养不良风险评估表(问题 6 选择“不能取得”)
示例表格结果,不全,请用代代码生成: