Python语言程序设计--实践教程--实验六(20题)

文章介绍了如何使用Python编程实现一个简单的扑克牌游戏,包括利用列表生成式组合花色和牌面,使用random库打乱牌的顺序,以及用户与计算机进行抽牌并进行大小比较的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

20.假设列表 lst_suit=["黑桃","红桃","梅花","方块"],存放了扑克牌的花色。列表Ist face =['3','4','5’,6'’,'7’,8’,9’,10,,Q,K,A,2],存放了扑克牌的牌面大小,其元素已按照牌面大小升序排列。试编写程序,完成以下功能。
(1)利用列表生成式,将以上两个列表进行元素搭配,生成一个新的列表1st,存放所有牌面(不考虑大小王)。新列表 1st 的内容为["3 黑桃”,"3 红桃","3 梅花","3 方块”,"4黑桃""4 红桃”,"4梅花","4 方块",…,"A 黑桃","A 红桃","A 梅花”,"A 方块","2 黑桃”,"2 红桃”"2 梅花","2 方块”]。
(2)使用random库的shufle函数将列表 lst 中的元素次序打乱。
(3)用户与计算机进行“抽牌比大小”游戏。游戏规则如下。
①用户输入序号(范围为0~51),程序根据序号在列表1st中读取牌面。                                            ②)计算机抽牌由程序自动完成(通过random库的randint()函数随机生成序号。                                  ③)将用户抽取的牌面与计算机抽取的牌面进行大小比较(不考虑花色),并将结果输出。三种输出内容对照如下:
“恭喜,您赢了!”
“很遗憾,您输了!”
“咱们平手了!”

参考代码

import random
lst_suit=["黑桃","红桃","梅花","方块"]
lst_face =['3','4','5','6','7','8','9','10','J','Q','K','A','2']
lst = []
for i in lst_face:
    for j in lst_suit:
        a=i+j
        lst.append(a)
print('(1)',lst)
random.shuffle(lst)
print("(2)打乱后:{}".format(lst))
a = eval(input("(3)请输入0-51的序号:"))
n = lst[a][0]
c = random.randint(0,51)
m = lst[c][0]
b =lst_face.index(n)
d = lst_face.index(m)
if a>52:
    print("输入错误!")
elif b==d:
    print("您的牌是:{},计算机的牌是:{},咱们平手了!".format(lst[a],lst[c]))
elif b>d:
    print("您的牌是:{},计算机的牌是:{},恭喜,您赢了!".format(lst[a],lst[c]))
elif b<d:
    print("您的牌是:{},计算机的牌是:{},很遗憾,您输了!".format(lst[a],lst[c]))

运行结果 

(1) ['3黑桃', '3红桃', '3梅花', '3方块', '4黑桃', '4红桃', '4梅花', '4方块', '5黑桃', '5红桃', '5梅花', '5方块', '6黑桃', '6红桃', '6梅花', '6方块', '7黑桃', '7红桃', '7梅花', '7方块', '8黑桃', '8红桃', '8梅花', '8方块', '9黑桃', '9红桃', '9梅花', '9方块', '10黑桃', '10红桃', '10梅花', '10方块', 'J黑桃', 'J红桃', 'J梅花', 'J方块', 'Q黑桃', 'Q红桃', 'Q梅花', 'Q方块', 'K黑桃', 'K红桃', 'K梅花', 'K方块', 'A黑桃', 'A红桃', 'A梅花', 'A方块', '2黑桃', '2红桃', '2梅花', '2方块']
(2)打乱后:['10黑桃', 'Q黑桃', '3红桃', '2黑桃', 'Q方块', '5方块', '9红桃', '9方块', '5梅花', '6梅花', 'A方块', 'K红桃', '8红桃', '10梅花', '4黑桃', '5红桃', '4梅花', 'A黑桃', '5黑桃', '2梅花', '6方块', '6红桃', '8方块', '4红桃', '4方块', 'J方块', '3梅花', '7红桃', '10红桃', '9黑桃', 'Q红桃', 'K黑桃', '8黑桃', '3黑桃', '8梅花', '9梅花', 'J红桃', '10方块', '7梅花', 'Q梅花', '2红桃', 'J黑桃', '7黑桃', 'J梅花', '2方块', 'K方块', 'A红桃', '7方块', '3方块', 'A梅花', 'K梅花', '6黑桃']
(3)请输入0-51的序号:27
您的牌是:7红桃,计算机的牌是:A梅花,很遗憾,您输了!

说明

此方法仅供学习参考,欢迎讨论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值