一摞python风格的纸牌

news/2025/10/7 23:30:27/文章来源:https://www.cnblogs.com/wangya216/p/19129016

一摞python风格的纸牌

import collections# 定义卡牌类
Card = collections.namedtuple('Card', ['rank', 'suit'])# 法式扑克牌类
class FrenchDeck:ranks = [str(n) for n in range(2, 11)] + list('JQKA')suits = 'spades diamonds clubs hearts'.split()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]# 测试代码
if __name__ == "__main__":# 创建一副扑克牌deck = FrenchDeck()# 1. 测试牌组长度print(f"牌组共有 {len(deck)} 张牌")  # 应该输出52张# 2. 测试获取特定位置的牌print("\n测试特定位置的牌:")print(f"第一张牌: {deck[0]}")      # 黑桃2print(f"最后一张牌: {deck[-1]}")   # 红桃Aprint(f"第10张牌: {deck[9]}")      # 黑桃J# 3. 测试切片功能print("\n测试切片功能:")print("前5张牌:", deck[:5])        # 黑桃2到黑桃6print("最后3张牌:", deck[-3:])     # 红桃Q、红桃K、红桃A# 4. 测试迭代功能print("\n测试迭代功能 - 前10张牌:")for card in list(deck)[:10]:print(card)# 5. 测试成员检查print("\n测试成员检查:")print(f"黑桃A在牌组中: {Card('A', 'spades') in deck}")  # Trueprint(f"方片1在牌组中: {Card('1', 'diamonds') in deck}")  # False# 6. 测试随机抽取import randomprint("\n测试随机抽取3张牌:")for _ in range(3):print(random.choice(deck))

以下是代码中单词的翻译:

  • import collections:导入 集合(模块)

  • Card = collections.namedtuple('Card', ['rank', 'suit'])

    • Card:卡牌(类名,此处为专有名词,不翻译)
    • namedtuple:命名元组(Python 中的一种数据类型)
    • rank:点数(指牌的数字或字母大小)
    • suit:花色(指扑克牌的四种花色)
  • class FrenchDeck

    • FrenchDeck:法式扑克牌(指标准52张扑克牌,不翻译)
  • ranks = [str(n) for n in range(2, 11)] + list('JQKA')

    • ranks:点数列表(牌面的数字和字母组合)
    • J:Jack(杰克,扑克牌中的J)
    • Q:Queen(王后,扑克牌中的Q)
    • K:King(国王,扑克牌中的K)
    • A:Ace(幺点,扑克牌中的A)
  • suits = 'spades diamonds clubs hearts'.split()

    • suits:花色列表
    • spades:黑桃
    • diamonds:方块
    • clubs:梅花
    • hearts:红桃
  • def __init__(self):初始化方法(构造方法)

  • self._cards:自身的卡牌列表(_ 表示该属性为内部使用,不建议外部直接访问)

  • def __len__(self):长度方法(用于返回对象的长度)

  • def __getitem__(self, position):获取元素方法(用于通过索引访问对象中的元素)

  • position:位置(指索引位置)

简单来说,这段代码通过 namedtuple 定义了“卡牌”(包含“点数”和“花色”),然后用 FrenchDeck 类创建了一副标准法式扑克牌(包含黑桃、方块、梅花、红桃四种花色,以及2-10、J、Q、K、A等点数),并实现了获取牌组长度和通过索引访问卡牌的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/930962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录一个ubuntu24.04蓝牙不显示不可用的解决方案

记录一个奇怪的ubuntu24.04桌面端的蓝牙标志消失处理办法 现象: 1.蓝牙开关消失,提示plug in a dongle to use bluetooth 2.服务日志提示:Bluetooth service was skipped because of an unmet condition check (Con…

网站开发电脑配置推荐网站流量 seo

客户简介 岗岭集团是中国互联网医药健康的领军企业,致力于用互联网模式和思维方式,改变中国大众“看病难、买药贵”的现状。岗岭集团运用创新的互联网和IT技术提供在线诊疗、购药和健康管理等服务,缩减中间环节,优化供应链&#…

社区门户网站建设方案雅式机械加工网

当我们找工作的时候查看招聘信息发现都需要有自动化测试经验,由此看来测试人员不会一点自动化测试技术都不好意思说自己是做软件测试的。大部分测试人员也都是从使用自动化测试工具、录制回放、测试脚本、开发小工具入门自动化测试的,然后在慢慢的接触 U…

惠州模板网站WordPress wlw设置

简单的说time()与$_SERVER["REQUEST_TIME"]都是获得时间的,但time返回当前的 Unix 时间戳而$_SERVER["REQUEST_TIME"]得到请求开始时的时间戳,稍有区别。1. time() 获取当前的系统时间戳inttime( void ) :返回自从 Unix 纪元(格林威…

directx 与d3d 什么关系

directx 与d3d 什么关系1. DirectX 是一个“套件”DirectX (Direct eXtension) 不是单一库,而是 微软在 Windows 平台上提供的一整套多媒体 API。主要模块包括:Direct3D (D3D) → 3D 图形DirectDraw → 2D 图形(后来…

数据仓库中的“时间旅行者”:深入理解渐变维度(SCD)与拉链表

某电商平台的用户“小美”昨天刚从上海搬到北京,现在住在北京的一家单身公寓里。“小美” 很热爱生活,喜欢烘培烹饪、逛展会、户外旅行等活动。为了满足自己的个性化需求,她选择成为一名电商“重度使用者”。她尤其…

MOVEit网络攻击波及普华永道与安永,供应链安全再响警钟

勒索软件团伙Clop利用MOVEit文件传输服务的零日漏洞发起供应链攻击,导致普华永道、安永等多家知名机构数据泄露。攻击者要求受害企业在6月14日前支付赎金,美国网络安全机构已发布安全补丁。MOVEit网络攻击波及普华永…

Penchick Online Mathematical Olympiad, Qualifying Test 1, III.4

原题链接:https://artofproblemsolving.com/community/c4h3687790_1st_penchick_online_mathematical_olympiad_qualifying_test_1_iii4 解答: 令 , . (统一分母)整理得:代入原式 均值不等式(AM-GM)得到最小 , …

自己做网站别人怎么看见wordpress搬家后全部页面404

目录 1.hdfs读写流程解析 2.hdfs副本机制,三副本原因,副本存放策略 3.hdfs容错机制原理 4.MapReduce执行流程详解 5.spark和mr的区别 6.TopN求法,大数据量无法完全写入内存解决方案,MapReduce实现方法 7.spark部署、调度原…

QBXT2025S刷题 Day6

T2 这道题是树形 \(\mathcal{DP}\),我们注意到如果一个点能和他的一个子树合并成为一个三叉,那么可以是以下四种情况。然后我们的状态记录一下当前有 \(i\) 个链,\(j\) 个倒 "Y"。 这样,我们可以先让 \(…

dx为什么用com

dx为什么用com1. DirectX 的历史背景DirectX 是 90 年代微软为 Windows 游戏/多媒体开发出的 API。当时 Windows 上最通用的组件化技术就是 COM(Component Object Model)。DirectX 各子系统(D3D、DirectSound、Dire…

我的网站现在没有排名_我想问是不是花钱做百度推广就会有排名网站怎么加入百度网盟

一、前言 本人面试已经很久之前了,分享一下我做美团面试官的经历吧。 美团上海面试,2-1及以下美团是不社招的,校招和2-2~2-3社招一般是三面,格外优秀3-1及以上会加签面试。初面技术基础,二面业务感知和技术项目&#…

北京网站制作闪快网站备案手机号

每到周末的时候,我就感到压抑,无处可去,无事可做,我为什么那么在乎别人的看法呢?从不主动和人交流,话少的可怜,我一周说的话手指都能数出来,总是感到尴尬,不说话还常常苦闷别人不理…

图书馆网站建设工作阿里云企业网站搭建

很多人的电脑或者手机上都离不开一款好用的便签软件,使用便签软件可以帮助大家记事,提醒大家按时完成各项任务,但是自带的记事本便签软件不论从外观还是功能方面都有一定的欠缺,在使用过程中很容易耽误事情。 功能全面外观好看的…

建设网站的内容规划网络公司seo教程

Hello,今天事10月27日,距离刚开始写博客已经过去挺久了,我也不知道是什么让我坚持这么久,但是学校的课真的很多,很少有时间多出来再学习,有些科目马上要考试了,我还不知道我呢不能过哈哈哈&…

建立自己的平台网站吗php开发的大型网站有哪些

1、实验目的 通过本实验可以掌握: CLI的各种工作模式个CLI各种编辑命令“?” 和【Tab】键使用方法IOS基本命令网络设备访问限制查看设备的相关信息 2、实验拓扑 CLI的使用与IOS基本命令使用拓扑如下图所示。 3、实验步骤 (1)CLI模式的切…

CF2145 Educational Codeforces Round 183 (Rated for Div. 2) 游记

高罚时开出三题,掉分 $93$,心如止水。省流 高罚时开出三题,掉分 \(93\),心如止水。10.6 内含剧透,请vp后再来。 不是题解!!!!!!! 赛前 前一天 \(qwsxza\) 一把上分 \(136\) 极大的激励了我,今天在电脑前不…

江苏网站备案要求如何做网站的百科

大多数WordPress站点首页默认都是显示最新发布的文章列表,不过有些站点比较特殊,只想显示某一篇文章的全部内容,那么应该怎么设置呢? 其实,WordPress后台 >> 设置 >> 阅读 >> 在“您的主页显示”中…

如何做网站效果更好WordPress自定义古腾堡

搜索引擎推广是一种有效提升品牌影响力的推广策略。通过关键词优化、广告创意设计、定向投放和数据分析与优化等实践技巧,可以提高品牌的知名度、点击率和转化率。在实施引擎霸屏推广之前,还需对实践效果进行评估,以确保推广策略的有效性和适…

52个AI工具

52个AI工具1. 研究类专注于信息检索、深度分析与知识处理,为学术研究、商业调研提供高效支持。ChatGPT:OpenAI 推出的多模态模型,支持图文输入、文件解析与代码生成,可通过自定义指令优化输出风格,还能利用 Canva…