生成随机数需要引入random模块,学习下random模块中常用的几个函数:
random.random() 用于生成一个0到1的随机符点数: 0 <= n < 1.0
random.uniform 函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。
random.randint() 函数原型为:random.randint(a, b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
random.randrange函数原型为:random.randrange([start], stop[, step]),从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10, 100, 2),结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。random.randrange(10, 100, 2)在结果上与 random.choice(range(10, 100, 2) 等效。
random.choice 从序列中获取一个随机元素。其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。这里要说明 一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。
random.shuffle 函数原型为:random.shuffle(x[, random]),用于将一个列表中的元素打乱。
random.sample 函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。
扑克牌:
#coding=utf-8 import random poker_num = [str(i) for i in range(2,11)] #数字牌 poker_str = ['A','J','Q','K'] #字母牌 poker_king = ['大王','小王'] #大小王 poker_color = ['红','黑','方','花'] #花色 pokers = ['%s%s'%(i,j) for i in poker_color for j in poker_num+poker_str] + poker_king #生成54张牌 print(len(pokers)) random.shuffle(pokers) #随机洗牌 #print(pokers) poker_a = pokers[0:51:3] #斗地主玩法 poker_b = pokers[1:51:3] poker_c = pokers[2:51:3] last_3 = pokers[-3:] print('A:',poker_a) print('B:',poker_b) print('C:',poker_c) print('最后三张:',last_3)
大乐透:
“35选5加12选2”玩法属于双区选号大乐透,玩法简单易懂,彩民们在购买“35选5加12选2”时,可以从01-35共35个号码中,选取5个号码为前区号码,并从01-12共12个号码中选取2个号码为后区号码,组合为一注进行单式投注。
如:
1 daletou_qian = [i for i in range(1,36)] #前区 01-35共35个号码可选择 2 daletou_hou = [i for i in range(1,13)] #后区 01-12共12个号码可选择 3 daletou_qian_random = random.sample(daletou_qian,k=5)#随机选取5个前区号码 4 daletou_hou_random = random.sample(daletou_hou,k=2) #随机选取2个后区号码 5 print(daletou_qian_random+daletou_hou_random) #前区随机5个,后区随机2个,组合为一注进行单式投注