创建一副纸牌的最佳方法是什么?

2023-11-24

我正在考虑为纸牌游戏制作一副纸牌。我可以列出所有卡片(我并不真正关心花色),但我想知道是否有更简单的方法来做到这一点。

cards = ['1','1','1','1'....]

我确信你可以做一个for循环创建 4 张相同值的卡片并将其添加到列表中,但我想知道这是否是最佳解决方案。我还不够先进,无法了解或创建一个Class我看到有人提供了其他解决方案,但我愿意接受解释。

我已经制作了一本定义卡值的字典。


我向您建议一个具有基本类用法的解决方案。

首先,我们来做一个Card class:

class Card:
    def __init__(self, value, color):
        self.value = value
        self.color = color

然后,让我们列出颜色列表:

colors = ['heart', 'diamonds', 'spades', 'clubs']

最后,让我们用列表理解来构建你的套牌:

deck = [Card(value, color) for value in range(1, 14) for color in colors]

The Cardclass只是一个包装器,只是为了操作卡片而不是元组,感觉更自然。

在目前的状态下,这几乎相当于重命名tupletype... 基本上,它只包含一个构造函数,__init__,设置实例的属性。

所以当我打电话时Card(value, color)在列表理解中,例如Card(11, 'spades'),一个新的实例Card类被创建,它有它的value属性设置为11,及其color属性设置为'spades'.

我建议您阅读一些有关 OOP 的教程,以深入了解这些概念。


现在,您可以尝试改进这个想法,例如使用更详细的values列表而不是range(1, 14):

values = ['ace', '2', ..., 'king']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建一副纸牌的最佳方法是什么? 的相关文章

  • ResultSet 对象没有属性“find_all”

    当我抓取一个网页时 我总是遇到一个问题 AttributeError ResultSet 对象没有属性 find 您可能将项目列表视为单个项目 当您打算调用 find 时 您是否调用了 find all 谁能告诉我如何解决这个问题 我的代码
  • Django 自引用关系?

    我正在尝试创建模型页面 页面也应该能够有 子页面 我的模型代码如下使Python崩溃 http pastie org private butthk1aaeb3pmh7mmag1g在我的Mac python 2 6 1 和Ubuntu 10
  • 使用 JSON 将数据从 Python 导出到 Tableau?

    如何以表格形式从 Python 获取 400 万行和 28 列 我假设 基于搜索 我应该使用 JSON 格式 这种格式可以处理大量数据并且足够快 我制作了 12 行数据的子集并尝试使其正常工作 好消息是 它正在发挥作用 坏消息 不是我想要的
  • 来自 yahoo 的 python lxml etree 小程序信息

    雅虎财经更新了他们的网站 我有一个 lxml etree 脚本 用于提取分析师建议 然而现在 分析师的建议已经存在 但只是以图表的形式出现 你可以看到一个例子这一页 https finance yahoo com quote CSX ana
  • 在 Windows 中安装 IPOPT 求解器以与 pyomo 一起使用

    如何安装 IPOPT 求解器以在 Windows 中与 pyomo 一起使用 我尝试了 pip install ipopt 但收到此错误 错误 为 ipopt 构建轮子失败 我正在使用 Windows 10 和 Python 3 7 4 在
  • Python + Selenium:驱动程序路径

    是否有可能在不输入路径的情况下运行 Python Selenium 脚本exePython 行中每个脚本中的文件 driver webdriver Chrome 同样的问题也适用于 IE 驱动程序 Edge 驱动程序 和 Gecko 驱动程
  • 在ubuntu中安装pyinterval

    我正在尝试安装 python 库 pyinterval 它需要 crlibm C 标头 我已安装该标头 没有错误 但似乎是问题的根源 当我跑步时 sudo easy install pyinterval 我得到以下信息 Searching
  • 如何针对 Heroku 路由器的代理/缓冲情况优化 uWSGI?

    我在 Heroku 的生产中使用 uWSGI 已有一年多了 它似乎比 Gunicorn 处理所有事情都要好得多 随着我们的流量扩大 我试图更好地理解heroku的路由器和uWSGI之间的接口 以优化和防止问题 但它对我来说仍然相当不透明 我
  • 对训练和测试数据帧使用相同的标签编码器

    我有 2 个不同的 csv 其中包含训练数据和测试数据 我从这些 train features df 和 test features df 创建了两个不同的数据帧 请注意 测试和训练数据有多个分类列 因此我需要对它们应用 labelEnco
  • 在Python中绘制像素的最佳方法[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我想知道 用 x 和 y 值在 python 中绘制像素的最简单方法是什么 可能最简单的方法是使用PIL http effbot org i
  • OSMNX - 边缘的哪个“部分”被认为是最近的

    我正在使用 OSMNX 中的 returned edges 函数 我不清楚在进行此计算时使用边缘的哪个 部分 它是边缘的任何部分吗 是中间点吗 对于网络中的长边来说 这会产生很大的差异 这取决于您如何参数化该函数 来自nearest edg
  • tkinter - 在askopenfile期间检索文件名

    我有一个用 Python 和 tkinter 制作的文本编辑器 这是我的 打开文件 方法 def onOpen self file askopenfile filetypes Text files txt txt file read sel
  • 缓存 pandas 数据框的最佳方法?

    昨天 我经历了惨痛的教训 将 pandas 数据帧保存到 csv 以供以后使用是一个坏主意 我有一个包含 130k 条推文的数据框 其中数据框的一行是list的推文 当我将数据保存到 CSV 然后重新加载数据帧时 数据帧的行现在是字符串类型
  • 我可以使用对象(类的实例)作为 Python 中的字典键吗?

    我想使用类实例作为字典键 例如 classinstance class dictionary classinstance hello world Python似乎无法将类作为字典键处理 还是我错了 另外 我可以使用像 classinstan
  • 如何设置 pandas DataFrame _repr_html_ 方法的默认样式?

    我有一个 pandas DataFrame 其中有一列是 url 并且我编写了以下格式化程序以将其作为链接呈现在我的笔记本中 def make clickable val target blank to open new window re
  • 如何在Python中生成0-1矩阵的所有可能组合?

    如何生成大小为 K N 的 0 1 矩阵的所有可能组合 例如 如果我取 K 2 和 N 2 我会得到以下组合 combination 1 0 0 0 0 combination 2 1 0 0 0 combination 3 0 1 0 0
  • 如何向 Iron Python 添加模块?

    我一直在尝试使用 C Visual Studio 执行以下 Python 代码 graphcreater py 我通过 NuGet 包管理器添加了 IronPyton 2 7 7 和 IronPython StdLib 2 7 7 一旦我运
  • Django 和 REST API 服务基于计算的请求

    我在 Django 中编写了一个机器学习应用程序 以便用户可以在表单中指定一些参数并训练模型 模型训练完成后 我想满足以下请求 curl http localhost 8000 model input XYZ 我希望 Django 返回给定
  • 在 AWS ec2 实例上使用“sudo pip”时出现错误

    我正在尝试在 aws ec2 实例上运行一个小型 python 代码 需要 pytz 和其他一些包 当我尝试安装 pytz 时 出现一些错误 ec2 user ip 172 31 28 178 pip install pytz Collec
  • 命名空间与常规包

    命名空间 Python 包之间有什么区别 没有 init py 和一个常规的Python包 有一个 init py 特别是当 init py普通包裹是空的吗 我很好奇 因为最近我忘记了 init py在我制作的包中 我从未注意到任何问题 事

随机推荐

  • 无法将 null 分配给隐式类型变量

    根据 Visual Studio 的说法 这是不行的 var foo null 但这没关系 var foo false double null null 为什么 是个 double null也影响到null在 else 分支中 隐式类型变量
  • x86-64 REX 前缀中的“REX”代表什么?

    From 英特尔的SDM 第 2 2 1 节指定 REX 前缀用于 指定 GPR 和 SSE 寄存器 指定 64 位操作数大小 指定扩展控制寄存器 但缩写词中的字母 REX 代表什么 这个2002年热门薯条演示AMD 扩展了幻灯片 10 上
  • Structuremap 是否支持开箱即用的 Lazy?

    结构图是否允许您以惰性方式进行构造函数注入 意思是在使用之前不创建注入的对象 UPDATE StructureMap v3 开箱即用地实现了这一点 因此不再需要这个技巧 StructureMap 版本 2 没有 但通过一些技巧 您可以让它完
  • Square 和 Rectangle 继承有什么问题?

    我读过一些关于将 Square 作为 Rectangle 类的继承类是一种不好的做法的文章 说它违反了 LSP 里氏替换原则 我还是不明白 我用Ruby做了一个示例代码 class Rectangle attr accessor width
  • Delphi 自动 Format Source 损坏匿名程序

    昨天我发现了 Delphi 中的 Format Source 功能 它节省了我很多时间 然而 我发现它破坏了匿名过程的布局 有没有什么设置可以改善这个结果 例如 如果我有以下代码 procedure TServerThread cbUpda
  • C/C++ 中的 asc 和 chr 等效项

    好吧 标题几乎概括了这一点 我想在 C 中使用类似 asc 0 的东西 并且想让程序平台独立 所以不想使用 48 任何帮助表示赞赏 您可以简单地使用单引号来使字符常量 char c a 字符类型is数字类型 所以没有真正的需要asc and
  • 在一个套接字上订阅多个多播组(Linux、C)

    是否可以在单个套接字上从多个多播组接收数据 例如 void AddGroup int sock const char mc addr str int mc port const char interface struct sockaddr
  • Ninject 使用 WCF Web API Preview 5

    有人能为我指出正确的方向 让 Ninject 与 WCF Web API Preview 5 一起使用吗 我已在我的 ASP NET MVC 3 项目以及使用 Ninject Extensions Wcf 库的另一个内部 WCF 服务中成功
  • 如何在 IE 中使用 javascript 从客户端获取文件大小?

    我使用了以下方法 HTML
  • Android,Glide 显示错误图像约一秒

    我正在使用 Glide 库从 URL 加载图像 这是我从 Graph Request Facebook 获得的 它用在 RecyclerAdapter 中 当我滚动时 每个 ImageView 显示错误的图片大约不到一秒 然后纠正一张 这是
  • 如何设置 DT_RPATH 或 DT_RUNPATH?

    在 Linux 上 ld so 8 手册页讨论了动态库的搜索顺序 它说DT RPATH已被弃用 并且还提到DT RUNPATH 没有提到 rpath链接器选项 The ld 1 手册页提到了 rpath and rpath link选项 但
  • 如何用 pandas DataFrame 中的前一个或下一个值替换 NaN?

    假设我有一个 DataFrame 其中包含一些NaNs gt gt gt import pandas as pd gt gt gt df pd DataFrame 1 2 3 4 None None None None 9 gt gt gt
  • 如何将 HTML 和文本复制到剪贴板?

    我试图同时放入 HTML 和纯文本的剪贴板片段 以便支持 HTML 的编辑器可以粘贴 HTML 而其他编辑器可以使用纯文本 Clipboard SetData DataFormats Html htmlWithHeader Clipboar
  • 在其父级边界之外显示用户控件内的控件

    我有一个带有文本框和列表框的用户控件 它使用它们为用户提供自动完成功能 但是 我希望将列表框绘制在用户控件边界之外 以便在必须将列表框绘制在用户控件边缘附近时不会被截断 关于如何做到这一点有什么建议吗 本质上 我想要一个列表框浮动在其容器控
  • Dart 中双数的正则表达式

    从我之前的问题来看 我试图只允许双精度格式的数字进入文本字段 我浏览了整个网络 没有找到 dart 的正则表达式 TextFormField inputFormatters WhitelistingTextInputFormatter Re
  • Android GridView像listview一样添加页眉和页脚

    也许你想打电话addHeaderView or addFooterView in GridView 它没有 我们自然希望将页眉视图或页脚视图添加到GridView 也许你和我一样苦苦寻找了很久 却最终没有找到解决办法 这里我给出一个解决方案
  • BCP 错误“无法打开 BCP 主机数据文件”

    我刚刚在我的 sqlserver 名称导出表中创建了一个新表 现在我尝试使用 cmd bcp 推出 但出现以下错误 SQLState S1000 NativeError 0 错误 Microsoft ODBC 驱动程序 13 对于 SQL
  • 蓝牙 LE 的 txPower 到底是什么以及如何使用它?

    我正在尝试了解 txPower 到底是什么以及如何使用它 因为我计划开发使用 Beacons 的 Android 应用程序 我在网上看到了2个定义 1 信标的发射功率 2 距信标1米处的接收功率 这两个定义有何关系 此外 当使用 Quick
  • 如何找到信号周期(自相关与快速傅里叶变换与功率谱密度)?

    假设有人想要找到给定正弦波信号的周期 从我在网上读到的内容来看 两种主要方法似乎采用傅里叶分析或自相关 我正在尝试使用 python 自动化该过程 我的用例是将这个概念应用于来自绕恒星运行的模拟物体的位置 或速度或加速度 时间序列的类似信号
  • 创建一副纸牌的最佳方法是什么?

    我正在考虑为纸牌游戏制作一副纸牌 我可以列出所有卡片 我并不真正关心花色 但我想知道是否有更简单的方法来做到这一点 cards 1 1 1 1 我确信你可以做一个for循环创建 4 张相同值的卡片并将其添加到列表中 但我想知道这是否是最佳解