Python学习笔记(随机数)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习笔记(随机数)相关的知识,希望对你有一定的参考价值。

random模块的作用是产生随机数。之前的小游戏中用到过random中的randint:

import random

num = random.randint(1,100)

 

random.randint(a, b)可以生成一个a到b间的随机整数,包括a和b。

a、b都必须是整数,且必须b≥a。当等于的时候,比如:

random.randint(3, 3)

的结果就永远是3

 

除了randint,random模块中比较常用的方法还有:

 

random.random()

生成一个0到1之间的随机浮点数,包括0但不包括1,也就是[0.0, 1.0)。

 

random.uniform(a, b)

生成a、b之间的随机浮点数。不过与randint不同的是,a、b无需是整数,也不用考虑大小。

random.uniform(1.5, 3)

random.uniform(3, 1.5)

这两种参数都是可行的。

random.uniform(1.5, 1.5)永远得到1.5。

 

random.choice(seq)

从序列中随机选取一个元素。seq需要是一个序列,比如list、元组、字符串。

random.choice([1, 2, 3, 5, 8, 13]) #list

random.choice(‘hello‘) #字符串

random.choice([‘hello‘, ‘world‘]) #字符串组成的list

random.choice((1, 2, 3)) #元组

都是可行的用法。

 

random.randrange(start, stop, step)

生成一个从start到stop(不包括stop),间隔为step的一个随机数。start、stop、step都要为整数,且start<stop。

比如:

random.randrange(1, 9, 2)

就是从[1, 3, 5, 7]中随机选取一个。

start和step都可以不提供参数,默认是从0开始,间隔为1。但如果需要指定step,则必须指定start。

random.randrange(4) #[0, 1, 2, 3]

random.randrange(1, 4) #[1, 2, 3]

random.randrange(start, stop, step)其实在效果上等同于

random.choice(range(start, stop, step))

 

random.sample(population, k)

从population序列中,随机获取k个元素,生成一个新序列。sample不改变原来序列。

 

random.shuffle(x)

把序列x中的元素顺序打乱。shuffle直接改变原有的序列。

 

以上是random中常见的几个方法。如果你在程序中需要其中某一个方法,也可以这样写:

from random import randint

randint(1, 10)

 

以上是关于Python学习笔记(随机数)的主要内容,如果未能解决你的问题,请参考以下文章

Python 学习笔记之random 模块

Python学习笔记4-randomstring模块

Python可视化物理随机过程---pygame学习笔记2

流畅的python和cookbook学习笔记

Python第二周 学习笔记

Python学习笔记——基础篇第五周——常用模块学习