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模块,生成随机数的更多相关文章

  1. Python中random模块生成随机数详解

    Python中random模块生成随机数详解 本文给大家汇总了一下在Python中random模块中最常用的生成随机数的方法,有需要的小伙伴可以参考下 Python中的random模块用于生成随机数. ...

  2. Python 使用random模块生成随机数

    需要先导入 random  模块,然后通过 random 静态对象调用该一些方法. random() 函数中常见的方法如下: # coding: utf-8 # Team : Quality Mana ...

  3. python的random模块生成随机数

    python的random函数 random.random() 生成0-1之间的随机数 random.uniform(a,b)生成a,b之间的浮点数 random.randint(a,b)生成a,b之 ...

  4. python-利用random模块生成测试数据封装方法总结

    1.前言: 在测试中经常有需要用到参数化,我们可以用random模块,faker模块生成测试数据,也可以用到pymysql,此文主要针对random模块生成任意个数的随机整数,随机字符串,随机手机号, ...

  5. [python]-random模块-手动随机数

    random模块通常用来生成随机数,结合time模块生成随机数的代码: import time import random random.seed(time.time()) x = random.ra ...

  6. .Net使用system.Security.Cryptography.RNGCryptoServiceProvider类与System.Random类生成随机数

    .Net中我们通常使用Random类生成随机数,在一些场景下,我却发现Random生成的随机数并不可靠,在下面的例子中我们通过循环随机生成10个随机数: ; i < ; i++) { Rando ...

  7. 高并发分布式系统中生成全局唯一(订单号)Id js返回上一页并刷新、返回上一页、自动刷新页面 父页面操作嵌套iframe子页面的HTML标签元素 .net判断System.Data.DataRow中是否包含某列 .Net使用system.Security.Cryptography.RNGCryptoServiceProvider类与System.Random类生成随机数

    高并发分布式系统中生成全局唯一(订单号)Id   1.GUID数据因毫无规律可言造成索引效率低下,影响了系统的性能,那么通过组合的方式,保留GUID的10个字节,用另6个字节表示GUID生成的时间(D ...

  8. C# Random循环生成随机数重复问题解决方案

    C# Random循环生成随机数重复问题解决方案1.当我们通过Random生成随机数时,习惯的写法如下: int a=new Random().Next(0,100); 然后生成一个数据数没有任何问题 ...

  9. python random模块(获取随机数)

    如果要使用random模块,需要先导入 import random 1.random.random()  #用于生成一个0到1的随机浮点数 2.random.uniform(a,b)  #用于生成一个 ...

  10. python random模块(随机数)详解

    使用前要先导入random模块 import random random.randomrandom.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 random ...

随机推荐

  1. servlet的运行机制,转发和重定向

    一.当发送一个请求到服务器端的时候,容器(tomcat)会判断该路径属于哪一个servlet进行处理,servlet有一个抽象父类“httpservlet”,这个类是一个模板设计模式的类,其中serv ...

  2. websocket的子协议stomp协议

    stomp协议Spring实现 服务器注册EndPoint 用来与客户端建立websocket连接 websocket连接的建立应该与客户端与服务器之间的通道无关 jdk中 javax下的websoc ...

  3. Java学习--泛型

    个人理解,所谓的泛型就是将数据类型像参数(称为类型参数或者泛型参数)一样传入类,接口或者方法中,这个类型参数可以当作普通的数据类型,进行变量的声明(成员变量,局部变量(包括方法参数)),指明返回值类型 ...

  4. Windows下pip 离线包安装

    pip在线安装十分方便,有时候某些服务器并没有直接联网,需要下载好安装包上传到服务器上进行安装,不经常用,还是有点小麻烦的. 安装Python之后,将下载好的安装包包放在Python安装的根目录下使用 ...

  5. matplotlib绘图基本用法-转自(http://blog.csdn.net/mao19931004/article/details/51915016)

    本文转载自http://blog.csdn.net/mao19931004/article/details/51915016 <!DOCTYPE html PUBLIC "-//W3C ...

  6. Game Engine Architecture 6

    [Game Engine Architecture 6] 1.Data-Parallel Computations A GPU is a specialized coprocessor designe ...

  7. css入门第一天

    一丶Web标准Web标准不是某一个标准,而是一系列标准的集合,内容与结构与表现形式的分离网页主要有四个部分组成:内容(content),结构(structure), 表现(presentation)和 ...

  8. ucos中的中断管理

    一.中断的概念 中断是一种硬件机制,用于处理异步事件.中断的实时性比轮询要好,通过中断,微控制器可以在异常发生的时候立刻进行处理,而不需要不断轮询事件是否发生. CM3支持中断嵌套,使得高优先级异常可 ...

  9. Spring 文件上传MultipartFile 执行流程分析

    在了解Spring 文件上传执行流程之前,我们必须知道两点: 1.Spring 文件上传是基于common-fileUpload 组件的,所以,文件上传必须引入此包 2.Spring 文件上传需要在X ...

  10. 创建表结构的sql语句

    1.创建表结构 表名: ODS_PSP_DIS_DAY_CALC create table ODS_PSP_DIS_DAY_CALC ( ID      CHAR(32)  NOT NULL, DIS ...