Python学习笔记之扑克牌比大小

一、系列缘由

  作为一名运维工程师,也一直有一个学习开发的想法,值此之际,不知道博客的下一期目标在哪里,在这思考和犹豫的间隙想着学习和充实一下自己,学习一下python语言,python随着大数据和人工智能的兴起而日益火爆。边学习边实践的原则学习python,希望自己更上一层楼。我的目标是创建一个自己的网站——太阳站点(sun-site.com),一个自娱自乐的自由空间。

二、学习笔记

  字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2, key3 : value3 }

内置函数 含义
len(dict) 计算字典元素个数,即键的总数。
str(dict) 输出字典,可以打印的字符串表示。
type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。
内置方法 含义
radiansdict.clear() 删除字典内所有元素
radiansdict.copy() 返回一个字典的浅复制
radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
radiansdict.get(key, default=None) 返回指定键的值,如果键不在字典中返回 default 设置的默认值
key in dict 如果键在字典dict里返回true,否则返回false
radiansdict.items() 以列表返回一个视图对象
radiansdict.keys() 返回一个视图对象
radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里
radiansdict.values() 返回一个视图对象
pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
popitem() 随机返回并删除字典中的最后一对键和值。

三、实践练习

1、游戏代码

#!/root/anaconda3/bin/python
# This is a python program.
'''
这是一个扑克牌比大小的游戏,在一副扑克牌中随机抽取一张
电脑同样随机抽取一张,根据抽取到的牌面比较大小。
只比较大小,不比较花色,同样花色的大小一致视为平局。
'''
import random

#扑克花色
cardColour = ['黑桃','红桃','梅花','方块']

#扑克字符
cardChr = [str(num) for num in range (2,11)]+['J','Q','K','A']

#生成52张花色牌
cardDict = {s+t:cardChr.index(t) for t in cardChr for s in cardColour}

#加入大小鬼
cardDict.update({'小鬼':13,'大鬼':14})

#生成一副顺牌
oneSetCard = [s+t for t in cardChr for s in cardColour] + ['小鬼','大鬼']

#洗牌
for c in range(len(oneSetCard)):
        oneSetCard.append(oneSetCard.pop(random.randint(0,len(oneSetCard)-1)))

#请切牌选牌
myCard = oneSetCard[int(input('牌已洗好,请输入您选择第几张(0-53):'))]

#剔除你已经选择的卡牌
oneSetCard.remove(myCard)

#计算机选牌
robotCard = oneSetCard[random.randint(0,len(oneSetCard)-1)]

#显示双方抽中的卡牌
print('您抽中的%s,计算机抽中的%s'%(myCard,robotCard))

#判断输赢,根据字典中定义的大小进行判断
if cardDict[myCard] > cardDict[robotCard]:
        print('恭喜,您赢了')
elif cardDict[myCard] > cardDict[robotCard]:
        print('平局')
else:
        print('很遗憾,您输了')

2、设计说明

  • 首先定义牌的花色和字符,这是一副牌的2个组成部分;
  • 定义一个字典,键为每一张独立的牌,值对应牌面大小的值;
  • 生产一个列表,对应54张扑克牌;
  • 利用随机函数和列表方法打乱扑克牌的顺序;
  • 游戏者和计算机各抽取一张卡牌
  • 查询扑克牌字典比较卡牌大小,判断输赢

3、游戏测试

在这里插入图片描述

おすすめ

転載: blog.csdn.net/carefree2005/article/details/121137217