Random概述
random模块主要用于生成随机数。
主要方法:
1. random.random()
用于生成一个0到1的随机浮点数
import random
a = random.random()
print(a)
2. random.uniform(a,b)
用于生成一个指定范伟内的随机浮点数,两个参数,一个是最大值,一个是最小值:
注:边界值的位置不分先后!
import random
num1 = random.uniform(1,10)
num2 = random.uniform(10,1)
print(num1) #输出一个1-10之间的随机浮点数
print(num2) #输出一个1-10之间的随机浮点数
3. random.randint(a,b)
用于生成一个指定范围内的整数,其中参数a是下限,参数b是上限:
import random
num1 = random.randint(1,10) #输出一个1-10时间的整数
num2 = random.randint(10,1) #触发ValueError错误
4. random.randrange([start,]stop[,step])
从指定范围、按指定步长增加的数列内,随机产生一个整数:
注:范围包括start,但是不包括stop
import random
# 在[10,12,14,16,18,20,22,24,26,28]中随机产生一个整数
num1 = random.randrange(10,30,2)
# 省略步长,则默认为step=1
num2 = random.randrange(10,30)
# 省略start和step,则表示从0开始,步长为1
num3 = random.randrange(30)
# start必须小于stop
num4 = random.randrange(10,5,2) #触发ValueError错误
5. random.choice(sequence)
从非空序列中获取一个随机元素:
注:sequence指一个序列,如:list、tuple、字符串等
import random
seq1 = "abcdefg"
a = random.choice(seq1) #在字符串seq1中随机选取一个字符
seq2 = ["This","is","my","testing"]
b = random.choice(seq2) # 在列表元素中随机选取一个元素
seq3 = ('This','is','my','testin')
c = random.choice(seq3) # 在元组中中随机选取一个元素
d = random.choice() # 序列为空时,会触发TypeError
6. random.shuffle(x[,random])
用于将一个列表中的元素打乱,即将列表内的元素随机排列:
import random
seq1 = ["a","b","c","d","e","f"]
random.shuffle(seq1) # seq1变为["b","d","a","c","f","e"],随机顺序
seq2 = "abcdefg"
random.shuffle(seq2) # 触发TypeError错误
7. random.sample(sequence,K)
从指定序列中随机获取指定长度的片段并随机排列:
注:sample不会修改原有序列
import random
seq1 = ["a","b","c","d","e","f"]
a = random.sample(seq1,4) # 从seq1中随机选取4个元素组成心的数组,且选取的元素不重复
seq2 = "abcdefg"
b = random.sample(seq2,4)# b为['b','g','e','a']
print(seq1,seq2) # 原序列不变
seq3 = (1,2,3,4,5,6,7)
c = random.sample(seq3,4)# c为[4,2,5,6],生成列表