脚本功能
对一组名单进行随机点名,同一次执行不会出现重复的名字
shell
names()#输入你自己的名单,如 names=(张三 李四)
while [ "${ans}" != "quit" ]
do
len=${#names[*]}
num=$(($RANDOM * ${len} / 32767))
echo ${names[${num}]}
unset names[${num}]
names=(${names[@]})#shell中删除数组的元素之后,是不会自动补位置的,只会把索引变为空,所以要执行此步对数组进行重排
read -p "You can keyin \"quit\" to stop. Or press Enter to continue." ans
if [ "${len}" == "0" ];then
echo "========================"
echo "All students were picked."
break
fi
done
Python
import random
array_name = [] #输入你自己的名单,如 array_name = ['张三','李四']
ans=""
while ans != "quit":
num=random.randint(0,len(array_name)-1)
print(array_name[num])
array_name.remove(array_name[num])
ans=input("You can keyin \"quit\" to stop. Or press Enter to continue.")
if len(array_name)==0:
print("+++++++++++++++++++++++++++")
print("All students were picked.")
break