random 英文意思是:随机的。在python中random是一个模块,使用前需要用模块添加语句
import random
我们通过这个模块的中的方法来生成我们满足我们的要求的随机数或者序列,下面将详细介绍一下主要函数的用法,注意使用中的细节问题。
我们主要会用到7个函数,我个人将它们分为三类来记
一:random(); 无参数,有返回值,返回一个[0,1]之间的小数,网上有说左开右闭的,对于这个问题,反正我是测了很多次,都没有给我生成一个区间边界值,如果哪位朋友有佐证的方法,望不吝赐教。但是我们的目的是生成随机数,追究这个确定的边界值个人感觉意义不是很大。
小数点后会保留16位
num1=random.random()
print(num1)
#此处我这输出的是:0.33570339353302747
二:randint(start,end); uniform(start,end); randrange(start,end,step); 这三个函数都是有参数,有返回值的,参数用来限定随机数范围
randint(start,end):返回[start,end]间的随机一个整数,start<=end 注意,如果start>end是会报错的
num2=random.randint(-10,20)
print(num2)
num3=random.randint(0,0)
print(num3)
#此处我这依次输出的是19,0,显然当 start==end 时,输出只能是一个值
uniform(start,end):返回[strat,end]间的随机一个小数,值得注意的是,它的start 和end没有大小要求,这个是与randint函数不同的
num4=random.uniform(-5,-10)
print(num4)
num4=random.uniform(-10,-10)
print(num4)
#此处我这输出结果位7.537225703523666 , -10.0 注意是-10.0,小数,不是-10 。
还有再看一下变量名,都是num4,我们说number是不可变类型,这里第二个num4的赋值,是重新生成了一个对象,重新分配了一个空间,不理解的可以随便找本教程体会一下。
randrange(start,end,step):返回从start到end间隔为step的一个随机整数
num=random.randrange(10,20,2)
print(num)
比如上面的就是会生成一个[10,12,14,16,18]之间的一个数
三:choice(sequence); shuffle(sequence); sample(sequence) 这三个都是有参数的,参数是一个序列,如列表、字符串、元组
choice(sequence):返回序列 sequence 中的随机一个值
list1=[2, 'a', -10.5, "abc",8]
print(random.choice(list1))
print(random.choice("hello world!"))
#我这输出 abc 和 w
shuffle(sequence):没有返回值,参数不支持是字符串,因为字符串是不可变类型啊,不会被打乱的,注意了,shuffle是把 sequence中的元素顺序打乱,它直接改变原有的序列,下面的写法是错误的
list1=[2, 'a', -10.5, "abc",8] # 这个代码段输出结果为None
print(random.shuffle(list1))
正确写法应该是:
list1=[2, 'a', -10.5, "abc",8]
random.shuffle(list1)
print(list1)
#此处我这输出[8, ‘a’, ‘abc’, -10.5, 2]
random.sample(sequence, len):顾名思义,sample:采样,返回sequence中的长度为len的随机采样,不改变原有序列sequence本身。
list1=[2, 'a', -10.5, "abc",8]
print(random.sample(list1,3))
#输出结果为[‘abc’, ‘a’, -10.5] 注意,len必须<=sequence的长度,不然会报错。
以上实例均经过测试,如有问题,请及时指正!晚安,期待明天美好的一天!