常用模块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']