python 练习洗牌

生成随机数需要引入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个,组合为一注进行单式投注

 

posted @ 2018-01-19 23:22  feiyueNotes  阅读(926)  评论(2编辑  收藏  举报