random是内建(built-in)函数,作用是产生随机数,使用较多.
首先是导入模块:
import random
接着就可以调用random模块下的函数了,例如:
random.randint(1,100)
语句的含义是产生1至100(包含1与100)的一个随机数。
也可以: from random import randint #直接导入randint函数
还可以改名呢: from random import randint as ra_int
就可以直接调用ra_int函数了,适用于名字较长的函数,写代码时方便。
使用 dir(random)可以查看random模块下有哪些函数,结果如下:
["BPF", "LOG4", "NV_MAGICCONST", "RECIP_BPF", "Random", "SG_MAGICCONST", "SystemRandom", "TWOPI", "WichmannHill", "_BuiltinMethodType", "_MethodType", "__all__", "__builtins__", "__doc__", "__file__", "__name__", "__package__", "_acos", "_ceil", "_cos", "_e", "_exp", "_hashlib", "_hexlify", "_inst", "_log", "_pi", "_random", "_sin", "_sqrt", "_test", "_test_generator", "_urandom", "_warn", "betavariate", "choice", "division", "expovariate", "gammavariate", "gauss", "getrandbits", "getstate", "jumpahead", "lognormvariate", "normalvariate", "paretovariate", "randint", "random", "randrange", "sample", "seed", "setstate", "shuffle", "triangular", "uniform", "vonmisesvariate", "weibullvariate"]
最常用的函数有如下:
random.random()
生成一个0到1之间的随机浮点数,包括0但不包括1,也就是[0.0, 1.0)。
random.uniform(a, b)
生成a、b之间的随机浮点数。不过与randint不同的是,a、b无需是整数,也不用考虑大小。
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
random.sample(population, k)
从population序列中,随机获取k个元素,生成一个新序列。sample不改变原来序列。
random.shuffle(x)
把序列x中的元素顺序打乱。shuffle直接改变原有的序列。
seed()方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数, 注意其实是伪随机数,只要初始值一样,得到的结果会是一样的,在python中,默认用系统时间作为seed。你也可以手动调用random.seed(x)来指定seed。