美文网首页
python基础模块---random

python基础模块---random

作者: 堪怜咏絮才 | 来源:发表于2020-03-31 09:55 被阅读0次
import random

print(random.__all__)
'''
['Random', 'seed', 'random', 'uniform', 'randint', 'choice', 'sample', 'randrange', 
'shuffle', 'normalvariate', 'lognormvariate', 'expovariate', 'vonmisesvariate', 'gammavariate', 
'triangular', 'gauss', 'betavariate', 'paretovariate', 'weibullvariate', 'getstate', 'setstate', 
'getrandbits', 'choices', 'SystemRandom']
通过random.__all__方法可以查看random下暴露的所有公用接口
'''

'''
random.seed()
    我们调用 random.random() 生成随机数时,每一次生成的数都是随机的。但是,当我们预先使用 random.seed(x) 
    设定好种子之后,其中的 x 可以是任意数字,如10,这个时候,先调用它的情况下,使用 random() 生成的随机数将会
    是同一个。
    注意:seed()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法
'''
random.seed(10)
print(random.random())
random.seed(10)
print(random.random())
random.seed(10)
print(random.random())

# 结果:
# 0.5714025946899135
# 0.5714025946899135
# 0.5714025946899135

'''
random.random()
    在[0.0,1.0]之间随机生成一个小数
'''
print(random.random())
print(random.random())
print(random.random())
print(random.random())

# 结果:
# 0.9428968560693625
# 0.29722536247737374
# 0.8524653225715761
# 0.8289171315902508

'''
random.uniform(a, b)
    在[a,b]之间随机生成一个小数
'''
print(random.uniform(1,2))
print(random.uniform(1,2))
print(random.uniform(1,2))
print(random.uniform(1,2))

# 结果
# 1.4799312472227346
# 1.5328821576397136
# 1.9792617596932158
# 1.3905496608031487

'''
random.randint(a, b)
    在[a, b]之间随机生成一个整数
'''
print(random.randint(1,10))
print(random.randint(1,10))
print(random.randint(1,10))
print(random.randint(1,10))

# 结果:
# 5
# 8
# 3
# 4

'''
getrandbits(k):
    生成一个k比特长度的随机整数(按存储大小的要求获得随机整数)
'''
print(random.getrandbits(3))
# 结果:
# 6

'''
randrange(start,stop[,step])
    生成一个[start,stop)之间以step为步数的随机整数 (按域、步长的要求获得随机整数)
'''
print(random.randrange(1, 10, 2))
print(random.randrange(1, 10, 2))
print(random.randrange(1, 10, 2))

# 结果:
# 3
# 9
# 5

'''
choice(seq)
    从序列类型seq(如字符串,列表,元组)中随机返回一个元素(用于序列抽1签)
'''
l = [i for i in range(10)]
print(random.choice(l))
print(random.choice(l))
print(random.choice(l))
print(random.choice(l))

# 结果:
# 2
# 5
# 1
# 1

'''
shuffle(seq)
    将序列类型seq中元素随机排序,返回打乱后序列,seq被改变(用于序列洗牌)
'''
l = [i for i in range(10)]
random.shuffle(l)
print(l)
random.shuffle(l)
print(l)
random.shuffle(l)
print(l)

# 结果:
# [1, 4, 6, 3, 9, 2, 0, 7, 8, 5]
# [8, 6, 2, 9, 7, 4, 5, 0, 1, 3]
# [7, 4, 3, 0, 9, 5, 1, 6, 2, 8]

'''
sample(seq,k)
    从序列类型seq中选取k个元素,以列表类型返回(用于序列抽K签,存入列表)
'''
l = [i for i in range(10)]
print(random.sample(l, 5))
print(random.sample(l, 5))
print(random.sample(l, 5))
print(random.sample(l, 5))

# 结果:
# [1, 9, 6, 2, 8]
# [1, 0, 6, 7, 5]
# [8, 7, 0, 3, 4]
# [2, 1, 5, 0, 4]

相关文章

网友评论

      本文标题:python基础模块---random

      本文链接:https://www.haomeiwen.com/subject/cbgiuhtx.html