第31天:Python random 模块

在本节中继续介绍 Python 提供的常用模块 random 模块,它的主要功能是用来生成伪随机数的。

random 模块

Python 提供的 random 模块实现了各种分布式的伪随机数生成器。该模块主要包含以下几种常用的函数。

random()函数

random()函数可以随机生成一个[0,1)的浮点数。例如:

import randomprint(random.random())
0.7258069853437111

randint(a,b)函数

randint(a,b)函数可以在指定范围内随机生成一个整数,其中参数a是下限,参数 b 是上限,生成的随机数n:a <= n <= b。例如:

import random print(random.randint(5,50))
37

uniform(a,b)函数

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

import randomprint(random.uniform(2,5))print(random.uniform(5,2))
4.4005557573520243.4262178434528874

sample(sequence, k)函数

sample(sequence, k)函数可以获取从总体序列或集合中选择的唯一元素的k长度列表。sample()函数不会修改原有序列,它主要用在无重复的随机抽样场景,实现从大量样本中快速进行抽样。例如:

import random lst = [1,2,3,4,5] print(random.sample(lst,4)) print(lst)
[5, 4, 3, 1][1, 2, 3, 4, 5]

randrange([start], stop[, step])函数

randrange()函数主要用于返回一个随机数,它有三个参数,其中第三个参数step是可选参数。具体区别如下:

  1. randrange([start], stop)可以在指定范围内随机生成一个整数,生成的随机数n:a <= n <= b。其中,参数start和参数stop是有要求的,必须小数在前大数在后,否则会报错。例如:

import randomprint(random.randrange(2,5))print(random.randrange(5,2))
3empty range for randrange()
  1. randrange([start], stop[, step])函数可以先从1到10中产生一个间隔是2的等差数列[1,3,5,7,9],再从中随机获取一个随机数。例如:

import randomprint(random.randrange(1,10,2))9

choice(sequence)函数

choice(sequence)函数可以从非空序列 sequence 中随机返回一个数,参数 sequence 表示一个有序类型,可以包含 list、tuple 等。例如:

import random strlist = ['C++','C#','Java','Python'] strtemp = ('Do you love python') print(random.choice(strlist))print(random.choice(strtemp))
Pythonv

shuffle(x[, random])函数

shuffle(x[, random])函数可以将一个有序列表中的元素打乱,再重新排序。例如:

import randomlst = ['A' , 'B', 'C', 'D', 'E' ]random.shuffle(lst) print (lst)
['C', 'B', 'A', 'E', 'D']

总结

本节给大家介绍了 Python 中 random 模块的常用操作,当在实际开发中需要生成随机数时可以参考。

参考

[1] https://www.cnblogs.com/liangmingshen/p/8909376.html

[2] https://docs.python.org/zh-cn/3/library/random.html

示例代码:Python-100-days-day031

系列文章

第30天:Python collections 模块详解
第29天:Python queue 模块详解
第28天:Python sys 模块详解
第27天:Python shutil 模块
第26天:Python os 模块详解
第25天:Python datetime 和 time
第24天:Python Standard Library 02
第23天:Python Standard Library 01
第22天:Python NameSpace & Scope
第21天:Web开发 Jinja2模板引擎
第0-20天:从 0 学习 Python 0-20 天合集
(0)

相关推荐

  • python random模块

    本篇介绍比较常用的一个标准模块,random. 这是一个随机数模块,可以用来随机生成随机数,经常被用于数学.游戏.算法等等上面. 1.导入random模块 要使用此模块,要先导入. import ra ...

  • 用python编写验证码

    作为一个用python的生信工程师,平时工作中除了用python来处理些文本文件和搭建流程,没事也想探索些其他有趣的功能.这几天就在网上学习了下如何用python编写验证码,感兴趣的同学也一起来学习下 ...

  • python random模块执行报错

    AttributeError: module 'random' has no attribute 'randint' 解决方法:python文件名与模块名不能一致,改名即可.

  • Python|随机函数——纸牌游戏的发牌机制

    问题描述在手机日益重要的当今社会,有很多人都在使用手机上的小程序在玩着各类纸牌游戏.那么今天,我讲述的是用python实现纸牌游戏中的一种--"七王五二三"的发牌.示例:运用ran ...

  • Python|随机数的奥秘

    前言大家是否还在为游戏.比赛时如何公平地选出一个随机数来决定出场顺序等影响游戏体验与比赛胜负的问题而烦恼,那么下面就以小编现在的知识提出解决方法,以一个随机猜数字游戏题目为引.问题描述猜数字游戏,随机 ...

  • python笔记46-史上最强大最好用的python日志模块nb_log

    前言 python的日志模块如何封装一值都是一个头疼的问题,封装的不好总是会出现重复打印等头疼问题. 现在终于找到一个最好用的日志模块nb_log,此日志模块由这位大佬开发的https://www.c ...

  • python logging模块的几点总结

    http://www.voidcn.com/article/p-ctmbnbwp-bbo.html 关于使用python logging模块的几点总结 使用python的标准日志模块logging可以 ...

  • 第26天:Python os 模块详解

    第26天:Python os 模块详解

  • 第27天:Python shutil 模块

    shutil 可以看作 sh + util,即 shell 工具之意,该模块提供了一些针对文件和文件夹的高级操作,如:拷贝.删除.移动等,shutil 模块是对 os 模块的补充. 1 文件和文件夹操 ...

  • 第29天:Python queue 模块详解

    queue 模块即队列,特别适合处理信息在多个线程间安全交换的多线程程序中.下面我们对 queue 模块进行一个详细的使用介绍. 1 queue 模块定义的类和异常 queue 模块定义了以下四种不同 ...

  • 第30天:Python collections 模块

    第30天:Python collections 模块

  • 第32天:Python logging 模块详解

    This module defines functions and classes which implement a flexible event logging system for applic ...