python3模拟扑克牌
python3.6环境
import collections from random import choice Card=collections.namedtuple('Card',['rank','suit'])class FrenchDeck:ranks=[str(n) for n in range(2,11)] +list('JQKA') #扑克的大小范围print(ranks)suits='spades diamods clubs hearts'.split() # 黑桃,钻石,方块,红心print(suits)def __init__(self):self._cards=[Card(rank,suit) for suit in self.suitsfor rank in self.ranks]def __len__(self):return len(self._cards)def __getitem__(self, position):return self._cards[position]beer_card=Card('7','diamonds') #实例一个扑克点print(beer_card)deck= FrenchDeck() #创一个扑克对象deck print(len(deck)) #打印总共有多少张扑克print(deck[0]) #打印第一张牌 黑桃2 print(deck[-1]) #打印最后一张牌 红心Aprint(choice(deck)) #随机抽取一张牌print(deck[:3]) #查看最上面三张 黑桃 2 ,3, 4print(deck[12::13]) #抽取索引为12的那张牌,然后每隔13张在抽取一张 正好是4个A# 实现了 __getitem__方法,这一摞牌变成了可迭代对象 for card in deck:print(card) print('===============================下面是反响迭代===============================') #反向迭代 for card in reversed(deck):print(card)#判断某张牌实例是否存在这副牌中 print(Card('Q','hearts') in deck) #True print(Card('7','beasts') in deck) #False# 比较扑克牌的大小2 最小、A 最大;同时还要加 # 上对花色的判定,黑桃最大、红桃次之、方块再次、梅花最小。 # 下面就是按照这个规则来给扑克牌排序的函数,梅花 2 的大小是 0,黑桃 A 是 51: suit_values=dict(spades=3,hearts=2,diamods=1,clubs=0)def spades_high(card): # 获取扑克的点数rank_value = FrenchDeck.ranks.index(card.rank) # 根据传入的牌的实例返回扑克0-51 之间的一个索引 例 黑桃A:12*4+3=51 return rank_value * len(suit_values) + suit_values[card.suit]# 通过上面定义的函数对这幅牌进行 升序排序 print('===============================自定义排序===============================') for card in sorted(deck, key=spades_high):print(card)
转载于:https://www.cnblogs.com/benjamin77/p/9107507.html
python3模拟扑克牌相关推荐
- 【Jetson Nano】使用python3模拟向阿里云发送数据
文章目录 使用python3模拟向阿里云发送数据 阿里云准备 1.登入阿里云物联网平台 2.产品创建流程 3.功能自定义 Jetson Nano准备 1.系统准备,首先烧写系统镜像 英伟达官网下载ub ...
- 模拟扑克牌大小软件_扑克与软件工程
模拟扑克牌大小软件 by Jeff Meyerson 杰夫·梅耶森(Jeff Meyerson) 扑克与软件工程 (Poker and Software Engineering) As a poker ...
- 如何使用python3模拟icmp发包
如何使用python3模拟icmp发包 模拟icmp协议快速探测内网机器 ICMP 包原理 简单的创建icmp包信息 创建raw socket 发送数据包 接收数据包,以及解包 完整的一次发包以及解析 ...
- 模拟扑克牌,随机抽取五张牌,判断是否为同花顺
今天去面试,遇到这个面试题,当时想法想通了,我跟面试官说给我半小时,但是超时了没写出来. 回来复盘一下~ 思路步骤: ①创建map容器存储扑克牌key为牌的索引,value为牌的值 ②按照同花顺顺序存 ...
- Java实验-02 模拟扑克牌游戏的洗牌
结合面向对象设计原则,分析和设计模拟扑克牌游戏的洗牌过程. 编程定义一个表示扑克牌的类 Poke,用 suit 来表示扑克牌的花色,用 face 来表示扑克牌的 牌面值,每副牌为 52 张,不考虑包含 ...
- 用java制作扑克牌_Java模拟扑克牌洗牌实现生成52张扑克的方法示例
本文实例讲述了Java模拟扑克牌洗牌实现生成52张扑克的方法.分享给大家供大家参考,具体如下: 要求: 生成52张扑克,模拟扑克牌洗牌,并输出. 实现代码: package com.NCU.ZHANG ...
- 模拟扑克牌随机选择(Java)
题目 模拟从一副扑克牌52张中选择一张.程序中牌的大小应显示为(Ace,1,2,3,4,5,6,7,8,9,10,Jack,Queen,King),牌的花色应该显示为(Diamonds(方块),Hea ...
- python3模拟键盘输入_python 模拟键盘输入
一.PyUserInput安装 python3.5的PyMouse和PyKeyboard模块都集成到了PyUserInput模块中.在python3.5中,直接安装PyUserInput模块即可 Py ...
- 模拟扑克牌的洗牌发牌
在内存中模拟出一副牌,然后模拟洗牌,发牌等动作 流程:构建一副牌保存到一个数组中–>洗牌–>创建玩家–>向玩家发牌–>输出每个玩家的牌 #include <stdio.h ...
- Python3模拟登录人人网
登录人人网urllib2的实现方法早就实现了,但是各种库比较混乱,代码不过pythonic,早就有很多人吐槽.今天咱们用requests库来模拟登录把人人网吧! 第一步 导入模块 #导入需要的模块 i ...
最新文章
- Deformable 可变形的DETR
- Struts2--DomainModel接收参数---使用广泛!!!
- 我在阿里招前端,我该怎么帮你?
- REVIT模型之机器人瓦力
- all any 或 此运算符后面必须跟_用 ANY、SOME 或 ALL 修改的比较运算符
- 网易笔试编程题java_2017年网易校招笔试JAVA研发编程题
- Python机器学习--KNN归一化、距离的惩罚
- 【Java】BigDecimal
- SDN精华问答 | 为什么会出现SDN?
- 关于python文件操作
- git(11)---Git的基础知识
- 如何安装Windows7多语言支持
- 不生成Excel文件,将Datatable数据 Response.write 输出生成Excel (转载)
- IAR 编译时找不到头文件的解决方法
- 6.1.6 日志压缩
- 2016,我有些明白了
- AMap(高德官方图层)
- GO Strings-and-runes
- 【机器学习课程-华盛顿大学】:4 聚类和检索 4.4 MoG混合高斯模型和EM估计最大化
- 从十亿光年到0.1飞米
热门文章
- 2022年考研计算机-数据库原理8-11章
- linux 学习笔记 -vim 操作
- SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘staff_info.depart_id‘ in ‘where clause‘
- oracle gc chain,ORACLE GC 类等待事件汇总分析
- hdfs合并小文件测试
- MFC调用dos窗口使用printf,cout打印输出
- 多线程编程:线程死锁的原因以及解决方法
- 按位运算操作符底层实现原理
- Vmware 安装 ghost 版 win 7
- mac 下设置 sublime text2 的命令行快捷方式 subl