python中随机数函数是random,其实好多语言中取随机数的函数都是random 只是调用的方法不一样
1.先列举一个最基本的用法
<1>随机数浮点型
r = random.random()
print(r)
输出:
0.926678564647434
随机数的默认是float(浮点型)
<2>.随机整数
n = int(random.random()*10)
print('n的值为:',n)
输出:
n的值为: 2
int(整数类型)
乘以10的原因是为了取整,去过不乘以10,那么一直就是一个小于1大于0的数,取整永远是0,起不到随机数的作用
2.当然random也有其他的参数,组成不同的方法
<1>.random.seed(int)
- 给随机数对象一个种子值,作为标记
- 对于同一种子值得输入,产生的序列也是一样的
- 通常把时间变化值作为种子值,目的为了每次的种子值不一样,随机值也不一样
- seed() 省略参数,默认当前系统时间生成的随机数
代码演示:
# 我们先给一个种子值
random.seed(2)
print(random.random())
输出:
0.9560342718892494
这个时候种子值2,就作为了随机数0.9560342718892494的一个标记
当我们再次随机数的时候就上2这个种子值
print(random.random()) #作对比的
random.seed(2)
print(random.random())
输出:
0.4848326734132643
0.9560342718892494
如果省略,就意味着当前系统时间作为参数
random.seed()
print(random.random())
random.seed()
print(random.random())
random.seed()也可以运用到其他的函数上面,比如:循环
random.seed(5)
num=0
while(num<5):
print(random.random()) #生出5个随机数
num+=1
这样的话产生的序列是不变的
<2>.random.randint(a,b)
- 返回指定范围的一个随机整数,包含上下限
print(random.randint(1,100))
<3>.random.uniform(u,complex)
- 返回指定范围的一个正态浮点数
- 范围值可以是 复数,float
print(random.uniform(0.2,1.1 + 2.2j))
输出:
(0.7561335664667732+1.3594376069187786j)
<4>.random.randrange(start,stop,step)
- 按照步长随机在上下限范围取一个随机数
- 不包过stop
- step步长可以不写,默认为1.那么这个时候作用就相当于random.randint()
print(random.randrange(1,7,3))
输出的结果要么是1要么是4(1+3)
不会是7(1+3+3),因为不包括最后的stop
<5>.random.shuffle()
- 对于list列表进行打乱
- shuffle()只作用于list
num=[1,2,3,4,5,6,7]
print (num)
random.shuffle(num)
print (num)
item=['a','b','c','d','e','f','g']
print (item)
random.shuffle(item)
print (item)
输出:
[1, 2, 3, 4, 5, 6, 7]
[2, 5, 3, 6, 4, 1, 7]
['a', 'b', 'c', 'd', 'e', 'f', 'g']
['g', 'c', 'd', 'f', 'a', 'b', 'e']
<6>.随机选择字符
random.sample()随机取n个字符.必须有两个参数
print(random.sample('hello world',5))
输出['r', ' ', 'd', 'o', 'w']
random.choice()随机选取一个字符
print(random.choice('hello world'))
输出r