1、random.choice(sep) 从一个序列中随机选取一个元素返回
1 2 3 4 5 6 | >>> list1 = [ "a" , 1 , 2 , 3 , "b" ] >>> random.choice(list1) 1 >>> tuple1 = ( 1 , 2 , 3 , 4 ) >>> random.choice(tuple1) 2 |
2、random.shuffle(sep) 用于将一个列表中的元素打乱
1 2 3 4 | >>> list1 = [ "a" , 1 , 2 , 3 , "b" ] >>> random.shuffle(list1) >>> list1 [ 3 , 'b' , 'a' , 1 , 2 ] |
3、random.sample(seq, k)在sep列表中随机选取k个元素返回
>>> list1=["a",1,2,3,"b"] >>> random.sample(list1,2) [3, 'b'] >>>
4、random.randint(a,b)随机返回a到b之间的一个整数
>>> random.randint(1,10)
7
>>> random.randint(10,1000)
5、random.random() 随机返回0到1之间的浮点数
>>> random.random() 0.3063577972461343 >>> random.random() 0.3168827759398656
6、random.randrange([start], stop[, step]) 从指定范围内,按指定基数递增的集合中 获取一个随机数
>>> random.randrange(10,20) 12 >>> random.randrange(10,20,2)#从10,12,14,16,18中随机选取一个数 12 >>>
7、random.uniform(a, b) 随机返回a到b之间的一个浮点数
>>> random.uniform(30,10) 20.403665604836398 >>> random.uniform(10,30) 19.506293480962483 >>> random.uniform(10,10) 10.0 >>>
例子:地理老师为了考核班里的20个学生,中国34个省的省会城市是什么。但为了防止学生作弊,每份试卷的题目顺序不一样,答案也不一样。因此需要写一个程序创建20份试卷,每份试卷创建34个多重选择题,次序随机。为每个题提供一个正确答案和3个随机的错误答案。试卷写进20个文本文件,每份试卷的答案也写进20个文本文件。
#! coding=utf-8 import random capitalCityString="北京市--北京 ;上海市 --上海 ;天津市 --天津 ;重庆市 --重庆 ;\ 黑龙江省 --哈尔滨 ;吉林省 --长春; 辽宁省 --沈阳 ;内蒙古自治区--呼和浩特 ;\ 河北省 --石家庄 ;新疆维吾尔自治区--乌鲁木齐 ;甘肃省-- 兰州 ;青海省--西宁 ;\ 陕西省 --西安 ;宁夏回族自治区--银川 ;河南省-- 郑州 ;山东省--济南 ;\ 山西省--太原 ;安徽省--合肥 ;湖南省--长沙;湖北省--武汉 ;江苏省--南京 ;\ 四川省--成都; 贵州省--贵阳 ;云南省--昆明 ;广西壮族自治区--南宁 ;\ 西藏自治区-- 拉萨 ;浙江省--杭州; 江西省--南昌 ;广东省--广州 ;福建省--福州 ;\ 台湾省--台北 ;海南省 --海口 ;香港特别行政区-- 香港; 澳门特别行政区-- 澳门。" grade = {0: "A", 1: "B", 2: "C", 3: "D"}#设置答案等级 def getDict(cityString):#将省会和省会城市的字符串转变成一个字典格式 provinceAndCapitalDict = {} cityList=cityString.split(";") for cityIndex in cityList: provinceAndCapitalList=cityIndex.split("--") provinceAndCapitalDict[provinceAndCapitalList[0]]=provinceAndCapitalList[1] return provinceAndCapitalDict def makeTestPaper(provinceAndCapitalDict): for i in range(20): fTest=open("E:\\test"+str(i+1)+".txt","w+")#创建试卷文件 fAnswer=open("E:\\answer"+str(i+1)+".txt","w+")#创建试卷答案文件 fTest.write("Name:\n")#试卷前需要学生填写自己的姓名 fTest.write("Score:\n\n")#试卷的得分 provinceAndCapitalDictkeys=list(provinceAndCapitalDict.keys())#获得34省列表 random.shuffle(provinceAndCapitalDictkeys)#随机打乱34省列表的顺序 for i in range(34):#循环创建34个题目 fTest.write(str(i+1)+","+"what's the capital of "+provinceAndCapitalDictkeys[i]+"?\n")#将问题写入文件 correctAnswer=provinceAndCapitalDict[provinceAndCapitalDictkeys[i]]#问题的正确答案 errorAnswer=list(provinceAndCapitalDict.values())#所有的答案 errorAnswer.remove(correctAnswer)#在所有答案中移除正确的那个答案,得到错误答案的列表 random.shuffle(errorAnswer)#随机打乱错误答案 Answer=random.sample(errorAnswer,3)#在错误答案列表中随机选择3个错误答案 Answer.append(correctAnswer)#将正确答案添加到答案列表中 random.shuffle(Answer)#再打乱4个答案的顺序 fTest.write("\n"+grade[0]+Answer[0]+"\n"+grade[1]+Answer[1]+"\n"+grade[2]+Answer[2]+"\n"+grade[3]+Answer[3]+"\n\n")#得到A、B、C、D四个答案,并写入到文件中 answerGrade="" for AnswerIndex in Answer: if AnswerIndex==correctAnswer: index=Answer.index(AnswerIndex) answerGrade=grade[index]#得到正确答案的等级(A、B、C、D) fAnswer.write(str(i+1)+","+answerGrade+correctAnswer)#最后将答案写入试卷答案文件 fTest.close() fAnswer.close() #调用两个方法 if __name__=="__main__": provinceAndCapitalDict = getDict(capitalCityString) makeTestPaper(provinceAndCapitalDict)
最后在磁盘上创建的文件如下:
打开一个试卷文件,如下图:
打开试卷答案文件,如下图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?