Python实现循环随机抽题

2020-12-28 10:25:03 浏览数 (1)

前几天有个同学问了我一个问题:

现在班上共计有70名学生,题库中有20道题,每位同学随机抽5道题(不重复),该怎么用python实现这个功能?

感兴趣的同学可以先不看下面的分析,试着自己实现一下这个功能。

已经实现的同学或觉得有点问题的小伙伴,看看我的分析思路吧。

1 解题思路

step1:定义一个5行70列的全0矩阵,命名为stu_tit,用来存放每位学生的抽题结果(其中每一列可以存储一位学生抽取的题号)。

step2:定义1到20的题号,命名为title。

stpe3:用random.sample函数从题号中随机抽取5个不重复的数字。

step4:利用循环把每次抽取的题号保存到stu_tit的列中,重复70次即可实现上述功能。

step5:把循环后得到的结果矩阵转换成数据框,方便我们观看。

2 具体实现代码

代码语言:javascript复制
import numpy as np
stu_tit = np.zeros((5,70))      #定义存放数据的全0矩阵
title = range(1,20)             #生成题号

import random
for i in range(0,stu_tit.shape[1]):
    stu_tit[:,i] = random.sample(title, 5)  #为每位同学赋予随机挑选的题

import pandas as pd
stu_tit = pd.DataFrame(stu_tit).astype(int) #转成DataFrame

得到的结果如下:

至此,这个小功能就实现啦,感兴趣的同学可以自己动手实现一下。如果有不同的实现方法,也可以在公众号后台跟我讨论一下

0 人点赞