Python根据级别分发问题



我有n个问题,分为三个级别(低,中,高)根据每个测验的问题数量,我想将这些问题随机显示给最终用户。

A)如果测试有7个问题,我们有三个级别,那么3个问题从低,2个问题从中,2个问题从高。B)如果测试有8个问题,我们有三个级别,那么3个问题从低,3个问题从中,2个问题从高。

quiz_questions = 7
low_question_ids = [1,2,3,4,5,6,7]                                                                                                                                                                
mid_question_ids = [44,55,66,77,88,99]                                                                                                                                                            
high_question_ids = [21, 22, 23, 24,25]    
mod_q = quiz_questions//3
low_question_ids[mod_q] 
mid_question_ids[mod_q] 
high_question_ids[mod_q]

我无法得到o/p

您需要首先找到要从每个类别中挑选的问题的数量,然后从问题列表中随机挑选出该数量的id。

import random
quiz_questions = 7
low_question_ids = [1,2,3,4,5,6,7]
mid_question_ids = [44,55,66,77,88,99]
high_question_ids = [21, 22, 23, 24,25]
#find no of question to be picked from each category
no_of_low_questions = (quiz_questions//3)+1
quiz_questions-=no_of_low_questions
no_of_mid_questions = quiz_questions//2 if quiz_questions % 2 == 0 else quiz_questions//2 + 1
no_of_high_questions = quiz_questions - no_of_mid_questions
#use random library to help pick random question ids from each list
print(random.sample(low_question_ids, no_of_low_questions))
print(random.sample(mid_question_ids, no_of_mid_questions))
print(random.sample(high_question_ids, no_of_high_questions))

最新更新