Python入门第25课——小案例之随机数(只读课堂)

    科技2022-08-08  145

    欢迎来到“只读课堂”!

    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教程就到这了,欢迎下一次的收看!

    Processed: 0.010, SQL: 8