python常用模块——random

常用模块random

random模块常用方法:这里只列出了常用的,以后用哪个方法这里没有时,再补充;

1. betavariate(self, alpha, beta)

返回0到1之间的任意值;必须满足 alpha > 0 和 beta > 0.两个都为数字;

例如:
    import random
    print(random.betavariate(9,3))    # 返回0到1之间的一个浮点数

2. choice(self, seq)

从非空序列中选择一个元素.seq可以是列表、元组等等,不能是字典

例如:
    import random
    print(random.choice([5,1,3,6,3,9]))   # 返回随机元素 3 

3. choices(self, population, weights=None, *, cum_weights=None, k=1)

返回被选择的元素的列表;如果未指定权重,则被选择的概率一样;

例如:
    import random
    print(random.choices())

4. randint(self, a, b)

返回a和b之间的整数,包含a/b。

例如:
    import random
    print(random.randint(-114,96))

5. randrange(self, start, stop=None, step=1, _int=<class 'int'>)

返回start和stop两个之间的数字;默认步长是1;如果指定了步长,则返回数字一定是 start+step*n

例如:
    import random
    print(random.randrange(2,66,5))    # 这里输出为 2+5n,即 7/12/17/22......

6. sample(self, population, k)

指定序列或集合 population 和 要选出的长度k;返回一个列表;

例如:
    import random
    print(random.sample([4,5,22,5,23,7],3))             # 输出 一个列表 [5,23]   元素随机选取

7. uniform(self, a, b)

返回一个浮点数,位于a、b之间的,可以包含a/b。

例如:
   import random
   print(random.uniform(-113,99))     # 输出一个随机浮点数

8. getrandbits(k)

返回一个随机数;我也没弄太明白;自己看的的规律是k为整数,k的值越大,返回的随机数值越大;

例如:
    import random
    print(random.getrandbits(5))      # 返回随机数 13
    print(random.getrandbits(35))     # 返回随机数 7746853177

9. random()

随机返回一个值,改值位于 [0,1);不需要参数;

例如:
    import random
    print(random.random())            # 返回随机数 0.6511358156229555

10. 举例

import random
print(random.uniform(2.5, 10.0) )           # 2.5到10.0之间的小数
print(random.random())                      # 随机0~1之间的小数
print(random.expovariate(1 / 5) )
print(random.randrange(10))                 # 随机0~10之间的整数
print(random.randrange(0, 101, 2))          # 随机0到100之间的,步长是2
print(random.choice(['win', 'lose', 'draw']))   # 随机选择一个

deck = 'ace two three four'.split()
random.shuffle(deck)                        # Shuffle a list,把一个list的顺序打乱
print(deck)         #['four', 'two', 'ace', 'three']

print(random.sample([10, 20, 30, 40, 50], k=4))     # 随机选择4个

print(random.choices(['red', 'black', 'green'], [18, 18, 2], k=6))      #加权的选择,值越大,权重越大['red', 'green', 'black', 'black', 'red', 'black']

 

posted @ 2018-12-10 09:13  hacker&haidao  阅读(230)  评论(0编辑  收藏  举报