Python|random之随机抽人分组
引言random库让Python语言有了灵魂,random是python函数中非常实用的函数之一,大部分python初学者都会去了解它,但是对它都不怎么刻意学习,其实random库很有内涵,有许多非常实用的东西:(1)random()返回0<=n<1之间的随机实数n;(2)choice(seq)则是从序列seq随机返回元素;(3)getrandbits(n)以长整数形式返回n个随机位;(4)shuffle(seq)对序列seq进行打乱重新排列;(5)sample(seq,n)从序列seq中随机返回n个元素;(6)randrange(x,y,z)x和y代表随机范围,z代表递增量;(7)randint(n,m)用于随机生成一个指定范围内的整数,范围在n到m之间;(8)uniform(n.m)用于随机生成一个指定范围内的浮点数,范围同样在n到m之间;问题描述针对班级要求,30人里面随机分配4组,每组人数为4人,进行小游戏。示例:输入:people=['小明', '小红', '小兰', '小美', '小黄', '小米', '小梦']输出:第一组:[ '小明', '小兰']第二组:[ '小美', '小米']解决方案算法描述:面对要求可以知道问题是随机抽人分组,一看随机便要运用random库,再看随机抽人分组,每组人数固定,那么便可以用sample解决,其次既然是抽人分组那么抽过的人就不会再被抽中,就可以把抽到的人选出来进行删除然后进行下一轮的抽人分组。随机抽人分组问题Python代码from random import*people=['一号','二号','三号','四号','五号','六号','七号','八号','九号','十号','十一号','十二号','十三号','十四号','十五号','十六号','十七号','十八号','十九号','二十号','二十一号','二十三号','二十三号','二十四号','二十五号','二十六号','二十七号','二十八号','二十九号','三十号']ans = sample(people,4)key='第一组:{0}'.format(ans) #把随机元素返回进keyfor i in ans:people.pop(people.index(i)) #遍历ans随机返回的元素并在people中进行删除print(key)ans_2 = sample(people,4)key_2='第二组:{0}'.format(ans_2)print(key_2)for j in ans_2:people.pop(people.index(j))ans_3 = sample(people,4)key_3='第三组:{0}'.format(ans_3)print(key_3)for w in ans_3:people.pop(people.index(w))ans_4 = sample(people,4)key_4='第四组:{0}'.format(ans_4)print(key_4)运行实例:
结语