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. react源码第一天

    1.下载源码:github 16.7版本 2.找到笔记:https://react.jokcy.me/book/api/react.html#

  2. springboot的打包方式

    先写一个测试接口 package com.example.demo; import org.springframework.web.bind.annotation.RequestMapping; im ...

  3. Hibernate Search集与lucene分词查询

    lucene分词查询参考信息:https://blog.csdn.net/dm_vincent/article/details/40707857

  4. 2018/12/22:centos中转换目录时/root的影响

    今天在将一个压缩包复制到/root下,并解压.从表面看我试在根目录下,但是就是不能进入生成的目录,提示no such file or diraction.最后我加上/root又好了,奇怪 编译环境:输 ...

  5. JS数组的基本操作方法

    一.concat()concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,仅会返回被连接数组的一个副本. var arr1 = [1,2,3];var arr2 = [4,5];va ...

  6. Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 1) C(二分+KMP)

    http://codeforces.com/contest/1129/problem/C #include<bits/stdc++.h> #define fi first #define ...

  7. Selenium Grid和IE /Firefox各种填坑

    使用selenium grid的步骤 1.确保hub和node都安装并且配置好了java jdk. 2.在hub上运行以下命令. java -jar C:\Software\selenium\sele ...

  8. mybatis实现自定义typeHandler

    java8以前的日期处理有多恶心,相信不少人都深有体会.与mabatis集成查询数据库中的日期字段映射为java日期类型或者字符型的时候,会多出一个".0".当然可以自行处理.但是 ...

  9. iframe登录超时跳转登录页面

    1.可以在登录页面加jQuery验证 $(function () { //判断一下当前是不是做顶层,如果不是,则做一下顶层页面重定向 if (window != top) { top.location ...

  10. 初步了解Spring

    1.了解“控制反转” 控制反转也称为依赖注入,是面向对象编程中的一种设计理念,用来降低程序代码之间的耦合度. 下面是一个最简单的打印机实例 纸张接口,纸张有大小 继承它的有两个类,两种纸张大小的类 A ...