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. 如何配置mysql的超时时间

    http://bigdata.51cto.com/art/201710/555377.htm

  2. 在树莓派3B、Ubuntu 18.04关闭板载Wifi、蓝牙

    树莓派没有传统的BIOS设置界面,文件/boot/firmware/config.txt就相当一个BIOS设置.这里是config.txt的详细文档:https://github.com/raspbe ...

  3. 需要转义的java字符(转)

    特别字符 说明 $ 匹配输入字符串的结尾位置.如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n' 或‘\r'.要匹配 $ 字符本身,请使用 \$. ( ) 标记一个子 ...

  4. python入门(十六):正则

    1.正则:对一些字符串实现模糊的匹配 使用场景: 爬虫:例如,网页源码里面的url都提取出来.网页里面提取我们想要的数据 分析日志:例如,拿到所有的ip,看看哪些ip访问过我的网站 2.引入包 > ...

  5. React—Native开发之 Could not connect to development server(Android)解决方法

    作为初学者昨天还好好能跑的项目今天就会遇到突然爆红出错是经常的事,让我们来看下是什么错吧 先来翻译: 连接不到开发的服务器. 请按照以下的步骤来修复此问题: 确保包服务器在运行确保你的设备或者模拟器连 ...

  6. python bmp转jpg 且灰度图转彩色

    今天在简书,上看到了一个 bmp转jpg的代码,便记录一下. # coding:utf-8 import os from PIL import Image # bmp 转换为jpg,灰度图转RGB d ...

  7. Django SCRF跨站点请求伪造

    使用Django发POSTt请求的时候经常会遇到Forbidden的错误,然后直接了当的方法就是去setting里面吧csrf中间件注释掉,其实csrf是django给我们提供的防护措施. CSRF就 ...

  8. 【SVN】关于提交代码时的问题

    将项目上传到SVN弹出框提示One added/edited TODO item was found. Would you like to review it? 然后百度说这样解决: 造成这个原因是因 ...

  9. 【相关网站 - 02】- Java 好文博客

    一.源码分析博客 还有这种操作?浅析为什么要看源码 你觉得什么才是 Java 的基础知识? 1. JDK 2. Mybatis 3. Spring 4. Sring Boot 5. Spring Cl ...

  10. CentOS7编译安装mysql-5.6.43

    Step 1:安装编译需要的软件和工具 [root@node-1 ~]# yum install gcc gcc-c++ cmake ncurses-devel bison Step 2:创建mysq ...