扑克牌排列_python

今天悦儿姐在前进的道路上突然被绊了一下,就是这道题。看似简单,但要顾及的地方还是很多的,稍不留神就拉下了某些东东。好,看题目:

扑克牌排列:下面代码模拟了一套扑克牌(初始排序A~K,共13张)的操作过程。操作过程是:
手里拿着这套扑克牌,从前面拿一张放在后面,再从前面拿一张放桌子上,再从前面拿一张放在后面,....如此循环操作,直到剩下最后一张牌也放在桌子上。下面代码的目的就是为了求出最后桌上的牌的顺序。初始的排列如果是A,2,3...K,则最后桌上的顺序为:[2, 4, 6, 8, 10, Q, A, 5, 9, K, 7, 3, J]请编程。

好,乍一看非常简单,那你自己做一做,发现总会有些部分与答案不符,于是就拿着扑克牌一遍一遍的试,哈哈,我就是这样的。好,不难发现,每次排好后,列表会变成两部分,一部分是放在桌子上的,一部分是还没排好的,于是又要再写一遍。于是就写了函数,有了函数,代码量就会大大减少。看程序:

yj=['A',2,3,4,5,6,7,8,9,10,'J','Q','K']  # 因为喜欢姚记扑克,就用姚记的首字母命名啦。
def pk(yj,n,s):  # 创建函数,yj是列表,n是从哪里开排(索引号),s是模式(放桌子上1,排后面2)
    yj2=yj.copy()  # 来个双胞胎,不改变yj的顺序,在yj2上糟蹋
    for i in yj[n:]:
        if s%2 != 0:  # 判断是否是排后面的
            yj2.append(i)  # 放后面
            yj2.remove(i)  # 前面的删了
            s+=1  # 模式每次都要加1哦,每次都是交替的,用奇数偶数来表示了
        else:
            s+=1
    return yj2  # 返回被排好的那个
yj=pk(yj,0,1)  # 调用(时间繁琐,没太好好整,友友们可以考虑一下for遍历)
yj=pk(yj,6,2)
yj=pk(yj,10,1)

本期到此结束,要想看别的,评论区留言给我,安排!!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 下面是一个用Python实现扑克牌洗牌的程序示例: ```python import random # 初始化一副扑克牌 suits = ['♠', '♥', '♦', '♣'] ranks = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A'] deck = [(s, r) for s in suits for r in ranks] # 洗牌 random.shuffle(deck) # 输出洗好的牌 for card in deck: print(f'{card[0]}{card[1]}', end=' ') ``` 首先,我们初始化一副扑克牌,其中`suits`表示花色,`ranks`表示点数,通过列表生成式生成每张牌的元组`(s, r)`。然后,使用Python内置的`random.shuffle()`函数进行洗牌。最后,使用一个循环遍历每张牌并输出。这里使用了f-string格式化字符串的方法,将花色和点数拼接起来输出。 输出结果可能类似于: ``` ♣K ♣7 ♥10 ♠Q ♥2 ♠8 ♠A ♦J ♣J ♠9 ♠7 ♠6 ♣5 ♥6 ♦2 ♣Q ♥8 ♠2 ♦K ♦A ♠3 ♦10 ♣8 ♦Q ♣3 ♦9 ♣A ♠10 ♣6 ♥J ♦7 ♠5 ♥9 ♠J ♣10 ♦6 ♥K ♦8 ♣9 ♣4 ♥5 ♦4 ♦3 ♥4 ♠4 ♥7 ♣2 ♦5 ♠K ``` ### 回答2: 扑克牌洗牌程序可以使用Python进行编写。 首先,我们需要定义扑克牌花色和点数。可以使用两个列表来存储花色和点数的信息: ```python suits = ['♠', '♥', '♦', '♣'] ranks = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'] ``` 接下来,我们可以使用嵌套循环来生成一副完整的扑克牌,并存储在一个列表中: ```python deck = [] for suit in suits: for rank in ranks: card = suit + rank deck.append(card) ``` 在洗牌之前,我们需要引入`random`库,以便对扑克牌进行随机排序: ```python import random ``` 现在,我们可以使用`random.shuffle()`函数对扑克牌进行洗牌: ```python random.shuffle(deck) ``` 洗牌完成后,可以通过打印列表中的元素来显示洗好的扑克牌: ```python for card in deck: print(card) ``` 完整的程序如下: ```python import random suits = ['♠', '♥', '♦', '♣'] ranks = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'] deck = [] for suit in suits: for rank in ranks: card = suit + rank deck.append(card) random.shuffle(deck) for card in deck: print(card) ``` 执行这段代码,将会按照洗牌后的顺序打印出一副完整的扑克牌。这就是用Python编写扑克牌洗牌程序的方法。 ### 回答3: 扑克牌洗牌是指将一副牌中的所有牌打乱顺序,重新排列成随机的顺序。以下是用Python编写的一个简单的扑克牌洗牌程序示例: ```python import random # 定义扑克牌花色和点数 suits = ['♠️', '♥️', '♣️', '♦️'] ranks = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'] # 创建一副扑克牌 deck = [] for suit in suits: for rank in ranks: deck.append(suit + rank) # 洗牌 random.shuffle(deck) # 输出洗牌后的扑克牌 for card in deck: print(card, end=' ') ``` 这个程序首先定义了扑克牌花色和点数。然后通过两个嵌套的循环生成了一副完整的扑克牌,将每张牌的花色和点数组合在一起后存入列表`deck`中。 接下来使用`random.shuffle()`函数对`deck`列表进行洗牌,该函数会随机打乱列表中的元素顺序。 最后,使用循环逐个输出洗牌后的扑克牌,每张牌之间用空格隔开。运行程序后,就能看到洗牌后的扑克牌序列。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值