欢迎来到“只读课堂”!
In [1]:
#这节课我们来用几个小案例练手:
In [2]:
# 1.扑克牌洗牌
# 2.彩票随机号码生成
开始打代码
“彩票”
In [3]:
#先引入一个随机数
In [4]:
import random
In [5]:
a = random.randint(1,10)
In [6]:
print(a)
4
In [7]:
print(a)
4
In [8]:
"""
案例:随机数 彩票号码
"""
Out[8]:
'\n案例:随机数 彩票号码\n'
In [9]:
#彩票大概是这样的: 35选5,12选2
In [10]:
#就用“大乐透”作变量名吧
In [18]:
daletou_qian = [i for i in range(1,36)]
In [12]:
#这样就表示产生1-35这样的一个数字
In [13]:
print(daletou_qianzhi)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35]
In [14]:
#来个后置
In [15]:
daletou_hou = [i for i in range(1,13)]
In [16]:
#从一个列表中随机选几个数
In [19]:
daletou_qian_random = random.sample(daletou_qian, k=5)
In [20]:
# k是说选几个
In [21]:
daletou_hou_random = random.sample(daletou_hou, k=2)
In [22]:
print(daletou_qian_random,daletou_hou_random)
[17, 1, 7, 22, 5] [12, 6]
In [23]:
#拼接在一起
In [24]:
print(daletou_qian_random+daletou_hou_random)
[17, 1, 7, 22, 5, 12, 6]
In [25]:
#顺序可以随便变换的。
扑克牌洗牌
In [26]:
poker_num = [str(i) for i in range(2,11)]
In [27]:
print(poker_num)
['2', '3', '4', '5', '6', '7', '8', '9', '10']
In [28]:
#扑克还要有花色是不是?
In [29]:
poker_color = ["红","黑","方","花"]
In [30]:
#除了数字牌,还要字符牌
In [31]:
poker_str = ["A","J","Q","K"]
In [32]:
#那么再复杂点儿,还要大小王吧
In [33]:
poker_king = ["大王","小王"]
In [34]:
#现在我们把它们拼接在一起,生成一副牌
In [35]:
pokers = ["%s%s" %(i,j) for i in poker_color for j in poker_num+poker_str] +poker_king
In [36]:
print(pokers)
['红2', '红3', '红4', '红5', '红6', '红7', '红8', '红9', '红10', '红A', '红J', '红Q', '红K', '黑2', '黑3', '黑4', '黑5', '黑6', '黑7', '黑8', '黑9', '黑10', '黑A', '黑J', '黑Q', '黑K', '方2', '方3', '方4', '方5', '方6', '方7', '方8', '方9', '方10', '方A', '方J', '方Q', '方K', '花2', '花3', '花4', '花5', '花6', '花7', '花8', '花9', '花10', '花A', '花J', '花Q', '花K', '大王', '小王']
In [37]:
#这样就生成了54张牌
In [38]:
#如果不信,我们来判断一下它的长度
In [39]:
print(len(pokers))
54
In [40]:
#现在我们要来洗牌
随机洗牌
In [41]:
random.shuffle(pokers)
In [42]:
print(pokers)
['花8', '方3', '花6', '方K', '方2', '方A', '黑3', '红6', '红3', '方4', '黑2', '红Q', '花5', '红9', '红7', '方5', '黑Q', '红K', '黑A', '黑6', '黑8', '花Q', '花A', '小王', '花J', '花4', '黑7', '方9', '方8', '黑4', '大王', '红4', '黑5', '方10', '方6', '花K', '方Q', '红10', '黑9', '红2', '黑J', '红A', '花2', '红5', '黑K', '红8', '花10', '花9', '方7', '花3', '花7', '黑10', '红J', '方J']
In [43]:
#这样就把之前生成的牌打乱了
斗地主(发牌 17张 20张)
In [44]:
#这就要用到列表切片
In [45]:
person_a = pokers[0:51:3]
In [46]:
#这是第一个人↑
In [47]:
person_b = pokers[1:51:3]
In [48]:
#这是第二个人↑
In [49]:
person_c = pokers[2:51:3]
In [50]:
#这是第三个人↑
In [51]:
last_3 = pokers[-3:]
In [52]:
#这是最后三张牌,“:”后面不指定数字就是1
In [53]:
#下面,我们来看看这三个人的牌:
In [54]:
print("person_a:",person_a)
person_a: ['花8', '方K', '黑3', '方4', '花5', '方5', '黑A', '花Q', '花J', '方9', '大王', '方10', '方Q', '红2', '花2', '红8', '方7']
In [55]:
print("person_b:",person_b)
person_b: ['方3', '方2', '红6', '黑2', '红9', '黑Q', '黑6', '花A', '花4', '方8', '红4', '方6', '红10', '黑J', '红5', '花10', '花3']
In [56]:
print("person_c:",person_c)
person_c: ['花6', '方A', '红3', '红Q', '红7', '红K', '黑8', '小王', '黑7', '黑4', '黑5', '花K', '黑9', '红A', '黑K', '花9', '花7']
In [57]:
#这样就能完成一个简单洗牌的程序。
本次只读课堂的python教程就到这了,欢迎下一次的收看!
本文通过实例展示了如何使用Python实现扑克牌洗牌和斗地主发牌过程,包括随机选择彩票号码、创建54张扑克牌并进行随机洗牌,以及按规则为玩家分配17或20张牌。

被折叠的 条评论
为什么被折叠?



