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个文本文件。
#! 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)
最后在磁盘上创建的文件如下:

打开一个试卷文件,如下图:

打开试卷答案文件,如下图:

random模块,生成随机数的更多相关文章
- Python中random模块生成随机数详解
Python中random模块生成随机数详解 本文给大家汇总了一下在Python中random模块中最常用的生成随机数的方法,有需要的小伙伴可以参考下 Python中的random模块用于生成随机数. ...
- Python 使用random模块生成随机数
需要先导入 random 模块,然后通过 random 静态对象调用该一些方法. random() 函数中常见的方法如下: # coding: utf-8 # Team : Quality Mana ...
- python的random模块生成随机数
python的random函数 random.random() 生成0-1之间的随机数 random.uniform(a,b)生成a,b之间的浮点数 random.randint(a,b)生成a,b之 ...
- python-利用random模块生成测试数据封装方法总结
1.前言: 在测试中经常有需要用到参数化,我们可以用random模块,faker模块生成测试数据,也可以用到pymysql,此文主要针对random模块生成任意个数的随机整数,随机字符串,随机手机号, ...
- [python]-random模块-手动随机数
random模块通常用来生成随机数,结合time模块生成随机数的代码: import time import random random.seed(time.time()) x = random.ra ...
- .Net使用system.Security.Cryptography.RNGCryptoServiceProvider类与System.Random类生成随机数
.Net中我们通常使用Random类生成随机数,在一些场景下,我却发现Random生成的随机数并不可靠,在下面的例子中我们通过循环随机生成10个随机数: ; i < ; i++) { Rando ...
- 高并发分布式系统中生成全局唯一(订单号)Id js返回上一页并刷新、返回上一页、自动刷新页面 父页面操作嵌套iframe子页面的HTML标签元素 .net判断System.Data.DataRow中是否包含某列 .Net使用system.Security.Cryptography.RNGCryptoServiceProvider类与System.Random类生成随机数
高并发分布式系统中生成全局唯一(订单号)Id 1.GUID数据因毫无规律可言造成索引效率低下,影响了系统的性能,那么通过组合的方式,保留GUID的10个字节,用另6个字节表示GUID生成的时间(D ...
- C# Random循环生成随机数重复问题解决方案
C# Random循环生成随机数重复问题解决方案1.当我们通过Random生成随机数时,习惯的写法如下: int a=new Random().Next(0,100); 然后生成一个数据数没有任何问题 ...
- python random模块(获取随机数)
如果要使用random模块,需要先导入 import random 1.random.random() #用于生成一个0到1的随机浮点数 2.random.uniform(a,b) #用于生成一个 ...
- python random模块(随机数)详解
使用前要先导入random模块 import random random.randomrandom.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 random ...
随机推荐
- jvm(一)类加载器
1.jvm的生命周期结束的几种情况 a.执行了System.exit()方法 b.程序正常执行结束 c.程序在执行过程中遇到了异常或错误而异常终止 d.操作系统出现错误 2.类加载过程 加载:查找并加 ...
- 36_react_ui_antd
1:最流行的开源react ui组件库 1.1:material-ui(国外) 1.2:ant-design(推荐:国内蚂蚁金服) 2.如何使用 方式一(页面引入): 在<head>标签内 ...
- lombok踩坑与思考
虽然接触到lombok已经有很长时间,但是大量使用lombok以减少代码编写还是在新团队编写新代码维护老代码中遇到的. 我个人并不主张使用lombok,其带来的代价足以抵消其便利,但是由于团队编码风格 ...
- Linux-04
文件处理命令 文件处理命令:rmdir 命令名称:rmdir 命令英文原意:remove empty directories 命令所在路径:/bin/rmdir 执行权限:所有用户 语法:rmdir ...
- 启动tomcat时报错:http-nio-8080-exec-10
启动Tomcat后访问 http://192.168.199.10:8080/jpress-web-newest 网页,查看日志有报错 问题原因:Java的内存溢出 故障现象为: cat /app ...
- Android 自定义的圆角矩形ImageView 工具类
上图看效果 自定义圆角矩形ImageView工具类 package com.wechaotou.utils; import android.content.Context; import androi ...
- unity插件各领域王者
移动端手势操作 Easy Touch 获取 缓动 iTween 获取 可视化编程 Playmaker1.9.0 获取 UI NGUI,UGUI 获取 Shader着色器可视化编程 AmplifySha ...
- 重启虚拟机后dhclient进程未运行解决办法
问题分析 重启虚拟机后,dhclient进程未运行的根因通常为: 1.NetworkManager未开启自启动导致的dhclient进程未运行 2.网卡设置未纳入NetworkManager管理导致的 ...
- 2018-2019-2 20165315《网络攻防技术》Exp5 MSF基础应用
2018-2019-2 20165315<网络攻防技术>Exp5 MSF基础应用 目录 一.实验内容 二.实验步骤 1.一个主动攻击实践 ms08_067(成功) 2.一个针对浏览器的攻击 ...
- mysql数据库分区和分表
转载自 https://www.cnblogs.com/miketwais/articles/mysql_partition.html https://blog.csdn.net/vbirdbest/ ...