Python中的random模块用于生成随机数,下面介绍一下random模块中最常用的几个函数。

国际惯例,用模块之前先导入:

 >>> import random

(一)random.random() :生成一个0到1的随机符点数: 0 <= n < 1.0,注意范围是包含0不包含1.0的

 >>> random.random()
 0.9860525014920107
 >>> random.random()
 0.022209392510227688
 >>>

(二)random.uniform() :生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a <= n <= b。如果 a <b, 则 b <= n <= a。如果a=b,则生成的随机数n:n=a=b

 >>> random.uniform(1,2)
 1.5701537578549036
 >>> random.uniform(6,7)
 6.328964651708305
 >>> random.uniform(6,6)
 6.0
 >>> random.uniform(7,6)
 6.67299824947645

(三)random.randint(a, b):生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b。如果a>b,会报错。

 >>> random.randint(1,10)
 3
 >>> random.randint(6,6)
 6
 >>> random.randint(8,3)
 Traceback (most recent call last):
   File "<pyshell#13>", line 1, in <module>
     random.randint(8,3)
   File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 218, in randint
     return self.randrange(a, b+1)
   File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 196, in randrange
     raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
 ValueError: empty range for randrange() (8,4, -4)
 >>> 

(四)random.randrange([start], stop[, step]):从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(1, 10, 2),结果相当于从[1, 3, 5, 7, 9]序列中获取一个随机数。random.randrange(1, 10, 2)在结果上与 random.choice(range(1, 10, 2) 等效。

  1 >>> random.randrange(1,10,2)
  2 1
  3 >>> random.randrange(1,10,2)
  4 9
  5 >>> random.randrange(10,1,2)          #表示范围的两个参数必须满足的条件:start < stop
  6 Traceback (most recent call last):
  7   File "<pyshell#19>", line 1, in <module>
  8     random.randrange(10,1,2)
  9   File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 210, in randrange
 10     raise ValueError("empty range for randrange()")
 11 ValueError: empty range for randrange()

 12 >>> random.randrange(10,10,2)
 13 Traceback (most recent call last):
 14   File "<pyshell#20>", line 1, in <module>
 15     random.randrange(10,10,2)
 16   File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 210, in randrange
 17     raise ValueError("empty range for randrange()")
 18 ValueError: empty range for randrange()

 19 >>> random.randrange(1,2,3)   #如果前两个参数的差值stop - start <= step,则生成的随机数为start
 20 1
 21 >>> random.randrange(1,4,3)
 22 1
 27 >>> random.randrange(1,5,3)
 28 1
 31 >>> random.randrange(1,5,3)
 32 4

 >>> random.randrange(5)             #当传入一个参数时,默认start = 0,把传入的参数赋值给stop
 2
 >>> random.randrange(5,2)           #当只传入两个参数时,必须满足 start < stop   否则会报错哦
 Traceback (most recent call last):
 File "<pyshell#35>", line 1, in <module>
 random.randrange(5,2)
 File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 196, in randrange
 raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
 ValueError: empty range for randrange() (5,2, -3)
 >>>

 >>> random.randrange(5,5)
 Traceback (most recent call last):
 File "<pyshell#43>", line 1, in <module>
 random.randrange(5,5)
 File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 196, in randrange
 raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
 ValueError: empty range for randrange() (5,5, 0)
 >>>

 >>> random.randrange(2,5)
 4
 >>>

(五)random.choice(sequence):从参数序列中从序列中获取一个随机元素。参数sequence表示一个有序类型。

 >>> random.choice('abcdef')
 'f'
 >>> random.choice([1,2,3])
 3
 >>> random.choice(1,2,3)
 Traceback (most recent call last):
   File "<pyshell#58>", line 1, in <module>
     random.choice(1,2,3)
 TypeError: choice() takes 2 positional arguments but 4 were given
 >>> random.choice((1,2,3))
 3
 >>> random.choice(1,3)
 Traceback (most recent call last):
   File "<pyshell#60>", line 1, in <module>
     random.choice(1,3)
 TypeError: choice() takes 2 positional arguments but 3 were given
 >>> random.choice(range(1,5))
 3
 >>> random.choice(random.random())
 Traceback (most recent call last):
   File "<pyshell#62>", line 1, in <module>
     random.choice(random.random())
   File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 253, in choice
     i = self._randbelow(len(seq))
 TypeError: object of type 'float' has no len()
 >>> random.choice(random.randint(1,5))
 Traceback (most recent call last):
   File "<pyshell#63>", line 1, in <module>
     random.choice(random.randint(1,5))
   File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 253, in choice
     i = self._randbelow(len(seq))
 TypeError: object of type 'int' has no len()
 >>> 

(六):random.shuffle(x[, random]),用于将一个列表中的元素打乱。

 >>> l = [1,2,3,4,5]
 >>> random.shuffle(l)
 >>> l
 [3, 2, 1, 4, 5]
 >>>
 >>> t = (1,2,3,4,5)         #下面这两个报错的例子说明了shuffle函数的参数不能是不可变类型的序列。
 >>> random.shuffle(t)
 Traceback (most recent call last):
   File "<pyshell#80>", line 1, in <module>
     random.shuffle(t)
   File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 272, in shuffle
     x[i], x[j] = x[j], x[i]
 TypeError: 'tuple' object does not support item assignment
 >>> s='my name is wangmanyi'
 >>> random.shuffle(s)
 Traceback (most recent call last):
   File "<pyshell#82>", line 1, in <module>
     random.shuffle(s)
   File "C:\Users\dddd\AppData\Local\Programs\Python\Python35\lib\random.py", line 272, in shuffle
     x[i], x[j] = x[j], x[i]
 TypeError: 'str' object does not support item assignment
 >>> 

(六)random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。

 >>> l = [1,2,3,4,5,6,7,8,9,10]
 >>> random.sample(l,3)
 [1, 10, 3]
 >>>
 >>> t = (1,2,3,4,5,6,7,8,9,10)
 >>> random.sample(t,3)
 [3, 1, 8]
 >>>
 >>> s = 'my name is wangmany'
 >>> random.sample(s,3)
 ['n', 'm', 'i']

上面只是整理了一部分常用的random中的函数,将来工作中应该够用了。

1.4 random模块的更多相关文章

  1. getpass模块和random模块

    getpass模块 用于对密码的隐藏输入案例: import getpass passwd = getpass.getpass("please input your password&quo ...

  2. Python中的random模块,来自于Capricorn的实验室

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  3. 随机内容生成(random模块)

    摘抄于: 低调的python小子 当梦想照进现实  幸福近在咫尺 [jpg]http://ip.ipwind.cn/msn.png[/jpg] Python中的random模块用于生成随机数.下面介绍 ...

  4. Python中的random模块

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  5. Python random模块 例子

    最近用到随机数,就查询资料总结了一下Python random模块(获取随机数)常用方法和使用例子. 1.random.random  random.random()用于生成一个0到1的随机符点数: ...

  6. python学习之random模块

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  7. python-Day5-深入正则表达式--冒泡排序-时间复杂度 --常用模块学习:自定义模块--random模块:随机验证码--time & datetime模块

    正则表达式   语法:             mport re #导入模块名 p = re.compile("^[0-9]") #生成要匹配的正则对象 , ^代表从开头匹配,[0 ...

  8. python random模块 - 小驹的专栏 - 博客频道 - CSDN.NET

    python random模块 - 小驹的专栏 - 博客频道 - CSDN.NET python random模块 分类: python 2011-11-15 15:31 6037人阅读 评论(2) ...

  9. 你真的用好了Python的random模块吗?

    random模块 用于生成伪随机数 源码位置: Lib/random.py(看看就好,千万别随便修改) 真正意义上的随机数(或者随机事件)在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结 ...

  10. python 简单验证码 random模块

    random 模块,产生随机数: chr 将数字转成字母. ascii 数字与字符对应表 链接 import randomtemp=""for i in range(0,4): r ...

随机推荐

  1. Django_xamin注册model错误

    可能出现的错误: 1. xadmin.sites.AlreadyRegistered: The model UserProfile is already registered 2. error:Fie ...

  2. PowerCLI: One-Liner to get VMs, Clusters, ESX Hosts and Datastores并导入数据库中

    需求:定期自动获取Vm在VCenter中对应的cluster.ESX.Datastore信息,同时将变化或者新增的数据上传到数据库中 解决思路分析: 1 首先使用VMware的powerCLI工具通过 ...

  3. CentOS如何把deb转为rpm

    说明:可以转换,但不一定可用,可以根据报错提示,安装需要的依赖. 1 安装alien工具,下载地址http://ftp.de.debian.org/debian/pool/main/a/alien/ ...

  4. linkin大话数据结构--Queue

    链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer).由于不必按顺序存储,所以插入和删除速度超 ...

  5. web技术发展历程--读《大型网站技术架构_核心原理与案例分析》

    1 早期的web服务 2 CGI程序的出现.发展.凋零到MVC的兴起 CGI:通用网关接口技术. 随着CGI技术的出现,web服务端可以通过不同的用户请求产生动态页面内容. web服务器将请求数据交给 ...

  6. mysql数据库表字段使用DESC等关键字报错及解决方法

    <!-- desc是MySQL数据库的关键字,作为字段名直接使用会报错 --><sql id="Base_Column"> id,mol,ip,port,n ...

  7. 机器学习--kNN算法识别手写字母

    本文主要是用kNN算法对字母图片进行特征提取,分类识别.内容如下: kNN算法及相关Python模块介绍 对字母图片进行特征提取 kNN算法实现 kNN算法分析 一.kNN算法介绍 K近邻(kNN,k ...

  8. Linux三剑客之awk最佳实践

    笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 知识点: 记录与字段 模式匹配:模式与动作 基本的awk执行过程 awk常用内置变量(预定义变量) awk数组 a ...

  9. C++的string类

    关于头文件cstring,提供了strlen及很多与字符串相关的函数的声明. 头文件string,要使用string类,必须在程序中包含头文件string,string类位于std中,必须提供一条us ...

  10. Win7系统下彻底删除无用服务的方法

    win7系统下中有非常多的服务项,用户来满足不同行业用户间的所有需求,系统服务也是执行指定系统功能的程序,许多情况下我们想要运行软件或执行外接设备都无法离开系统服务,但并非所有系统服务都是我们用到的, ...