zoukankan      html  css  js  c++  java
  • python 练习题-扑克洗牌

     1 '''
     2 题目: 一副扑克牌,13*4+2张,要求洗牌,也就是把牌尽量打乱
     3 '''
     4 
     5 '''
     6   1.先生成1-5的随机数,对应四种花色和大小王,找到对应花色后,
     7   再生成随机数取出对应的牌,然后删除对应的号码(以下程序使用此思路)
     8   2.可以将54张牌编号,然后再随机生成54个随机数,递减
     9 '''
    10 
    11 import random
    12 # 四种颜色的扑克
    13 flow = ['黑桃', '红桃', '方块', '梅花','']
    14 
    15 # 号码,四种花色
    16 numFlowBlack = [ '2', '3', '4', '5', '6', '7', '8', '9', '10', 'j', 'q', 'k','a']
    17 numFlowRed =numFlowBlack.copy()
    18 numFlowBlock = numFlowBlack.copy()
    19 numFlow = numFlowBlack.copy()
    20 # 大小王
    21 king = ['big', 'small']
    22 
    23 num = [numFlowBlack, numFlowRed, numFlowBlock, numFlow, king]
    24 # 已经取出的扑克牌
    25 pokeGet = []
    26 
    27 # 随机取值
    28 def pokeGetRandom():
    29     while True:
    30         # 随机生成四种花色和大小王的数字,
    31         i = random.randint(1,len(num))
    32 
    33         # 从取出的花色中随机取值,然后删掉
    34         if  len(num[i-1]) > 0:
    35             j = random.randint(0, len(num[i-1])-1)
    36             pokeGet.append(flow[i - 1]+num[i-1][j])
    37             num[i-1].pop(j)
    38 
    39         if len(num[0]) == 0 and len(num[1]) == 0 and len(num[2]) == 0 and len(num[3]) == 0 and len(num[4]) == 0 :
    40             break
    41 
    42     return pokeGet
    43 
    44 print(pokeGetRandom())

    问题:使用while 循环,在最后可能会出现多余的循环

  • 相关阅读:
    Eclipse中插件的运用
    AES加密解密 Java中运用
    DES加密解密 Java中运用
    Chrome中的插件运用
    JqueryEasyUI教程入门篇
    SEO入门教程
    屏幕取色工具
    gif处理
    java 实现序列化的两种方式
    重定向输出 > 1>&2 2>&1
  • 原文地址:https://www.cnblogs.com/whycai/p/14310953.html
Copyright © 2011-2022 走看看