依然用KOLB实现
这次希望实现的功能是,每个问题有四个选项,用户需要给每个选项排序,最符合自己到最不符合自己。
实现思路:
1. 可以按如下顺序,先遍历显示四个选项,先选最符合自己的,赋值为4,然后最不符合自己的,赋值为1, 剩下两个选项中选择更符合自己的,赋值为3,else赋值为2。选项赋值完成。
2. 直接和用户说明,让用户自己赋值,check是否有重复value
第二思路实现:
questions部分
questions = [
{"问题": "问题1:...", "选项": ["选项1", "选项2", "选项3", "选项4"]},
{"问题": "问题2:...", "选项": ["选项5", "选项6", "选项7", "选项8"]},
{"问题": "问题3:...", "选项": ["选项9", "选项10", "选项11", "选项12"]},
{"问题": "问题4:...", "选项": ["选项13", "选项14", "选项15", "选项16"]},
{"问题": "问题5:...", "选项": ["选项17", "选项18", "选项19", "选项20"]},
]
answers = {}
for question in questions:
print("以下4个选项,请选择最符合你的一项打4分,比较像你的打3分,不太像你的打2分,最不像你的打1分")
print(question["问题"], question["选项"])
options = question["选项"]
option_order = sorted(options) # 对选项进行排序
question_answers = {}
for option in option_order:
while True:
try:
order = option_order.index(option) + 1 # 计算选项在排序后的位置
answer = int(input(f"请对选项 {option} 进行打分({order}/4):"))
if answer < 1 or answer > 4:
raise ValueError
if answer in question_answers.values():
raise ValueError("打分不能重复")
question_answers[option] = answer
break
except ValueError:
print("请输入有效的选项打分!")
answers[question["问题"]] = question_answers