PTA习题【python】 6-8 jmu-python-发牌

从键盘输入一个整数作为随机种子,随机生成一副扑克牌(去掉大小王),循环分给4位牌手,每人5张牌(第1、5、9、13、17张牌给第一个玩家,第2、6、10、14、18给第二个玩家。。。以此类推)并输出。

函数接口定义:

create( ) 
shufflecard(pokers) 
deal(pokers,n) 

其中create( )的功能是生成一副不含大小王的扑克牌序列并返回;shufflecard(pokers)的功能是随机洗牌并返回洗牌后的扑克牌序列,其中 pokers 是传入的参数,表示52张扑克牌的序列;deal(pokers,n) 是发5张牌给一个玩家并将发给该玩家的牌输出(输出“第i个玩家拿到的牌是:xx,xx,xx,xx,xx”,其中冒号为中文符号,5张牌之间的逗号为英文符号),其中pokers 是已经洗好牌的52张扑克牌序列、 n 表示第几个玩家。

裁判测试程序样例:

import random

/* 请在这里填写答案 */

suit=['♥','♠','♦','♣']
d=['A','2','3','4','5','6','7','8','9','10','J','Q','K']
n=int(input())
random.seed(n)
poker=create()
poker=shufflecard(poker)
for i in range(52):
    print('%-4s'%poker[i],end='  ')
    if i%13==12:
        print()
for i in range(1,5):
    deal(poker,i)

输入样例:

7

输出样例:

♠5    ♣A    ♦6    ♥J    ♣2    ♥Q    ♥A    ♠7    ♠2    ♣Q    ♠4    ♥9    ♦K    
♣6    ♦8    ♣7    ♠Q    ♦4    ♠10   ♥K    ♠9    ♣5    ♦5    ♦3    ♣J    ♣K    
♥8    ♣10   ♠6    ♦10   ♥2    ♦J    ♣4    ♠3    ♣8    ♦A    ♦2    ♥6    ♥3    
♠A    ♦7    ♣9    ♦Q    ♠J    ♥7    ♦9    ♥5    ♥4    ♣3    ♠K    ♥10   ♠8    
第1个玩家拿到的牌是:♠5,♣2,♠2,♦K,♠Q
第2个玩家拿到的牌是:♣A,♥Q,♣Q,♣6,♦4
第3个玩家拿到的牌是:♦6,♥A,♠4,♦8,♠10
第4个玩家拿到的牌是:♥J,♠7,♥9,♣7,♥K

 代码实现

def create():
    l = []
    for i in range(len(suit)):
        for k in range(len(d)):
            temp = suit[i]+d[k]
            l.append(temp)
    return l
def shufflecard(pokers):
    random.shuffle(pokers)
    return pokers
def deal(pokers,n):
    step = n-1 #开始的步长
    print('第{}个玩家拿到的牌是:'.format(n),end='')
    for i in range(5):
        if i !=4:
            print(pokers[step],end=',')
            step = step + 4
        else:
            print(pokers[step])
            step = step + 4

提交结果

 

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值