python3----生成随机数(random模块)
1、random.choice(sep) 从一个序列中随机选取一个元素返回
>>> list1
=
[
"a"
,
1
,
2
,
3
,
"b"
]
>>> random.choice(list1)
1
>>> tuple1
=
(
1
,
2
,
3
,
4
)
>>> random.choice(tuple1)
2
2、random.shuffle(sep) 用于将一个列表中的元素打乱
>>> 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个文本文件。
1 import random 2 capital_city_string = "北京市--北京 ;上海市 --上海 ;天津市 --天津 ;重庆市 --重庆 ;" \ 3 "黑龙江省 --哈尔滨 ;吉林省 --长春; 辽宁省 --沈阳 ;内蒙古自治区--呼和浩特 ;" \ 4 "河北省 --石家庄 ;新疆维吾尔自治区--乌鲁木齐 ;甘肃省-- 兰州 ;青海省--西宁 ;" \ 5 "陕西省 --西安 ;宁夏回族自治区--银川 ;河南省-- 郑州 ;山东省--济南 ;" \ 6 "山西省--太原 ;安徽省--合肥 ;湖南省--长沙;湖北省--武汉 ;江苏省--南京 ;" \ 7 "四川省--成都; 贵州省--贵阳 ;云南省--昆明 ;广西壮族自治区--南宁 ;" \ 8 "西藏自治区-- 拉萨 ;浙江省--杭州; 江西省--南昌 ;广东省--广州 ;福建省--福州 ;" \ 9 "台湾省--台北 ;海南省 --海口 ;香港特别行政区-- 香港; 澳门特别行政区-- 澳门" 10 11 grade = {0: "A", 1: "B", 2: "C", 3: "D"} # 设置答案等级 12 13 14 15 def get_dict(city_string): # 将省会和省会城市的字符串转变成一个字典格式 16 province_and_capital_dict = {} 17 city_list = city_string.split(";") 18 for city_index in city_list: 19 province_and_capital_list = city_index.split("--") 20 province_and_capital_dict[province_and_capital_list[0]] = province_and_capital_list[1] 21 return province_and_capital_dict 22 23 24 def make_test_paper(province_and_capital_dict): 25 for i in range(20): 26 f_test = open("E:\\test" + str(i + 1) + ".txt", "w+") # 创建试卷文件 27 f_answer = open("E:\\answer" + str(i + 1) + ".txt", "w+") # 创建试卷答案文件 28 f_test.write("Name:\n") # 试卷前需要学生填写自己的姓名 29 f_test.write("Score:\n\n") # 试卷的得分 30 province_and_capital_dictkeys = list(province_and_capital_dict.keys()) # 获得34省列表 31 random.shuffle(province_and_capital_dictkeys) # 随机打乱34省列表的顺序 32 for i in range(34): # 循环创建34个题目 33 # 将问题写入文件 34 f_test.write(str(i+1)+","+"what's the capital of " + province_and_capital_dictkeys[i]+"?\n") 35 correct_answer = province_and_capital_dict[province_and_capital_dictkeys[i]] # 问题的正确答案 36 error_answer = list(province_and_capital_dict.values()) # 所有的答案 37 error_answer.remove(correct_answer) # 在所有答案中移除正确的那个答案,得到错误答案的列表 38 random.shuffle(error_answer) # 随机打乱错误答案 39 answer = random.sample(error_answer, 3) # 在错误答案列表中随机选择3个错误答案 40 answer.append(correct_answer) # 将正确答案添加到答案列表中 41 random.shuffle(answer) # 再打乱4个答案的顺序 42 f_test.write("\n"+grade[0]+answer[0]+"\n"+grade[1]+answer[1]+"\n"+grade[2]+answer[2]+"\n"+grade[3] + 43 answer[3] + "\n\n") # 得到A、B、C、D四个答案,并写入到文件中 44 answer_grade = "" 45 for answer_index in answer: 46 if answer_index == correct_answer: 47 index = answer.index(answer_index) 48 answer_grade = grade[index] # 得到正确答案的等级(A、B、C、D) 49 f_answer.write(str(i+1)+","+answer_grade+correct_answer) # 最后将答案写入试卷答案文件 50 f_test.close() 51 f_answer.close() 52 53 调用两个方法 54 if __name__ == "__main__": 55 province_and_capital_dict = get_dict(capital_city_string) 56 print(province_and_capital_dict) 57 make_test_paper(province_and_capital_dict)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!