【问题标题】:How can I make this "Card" class generate a list of Card objects?如何让这个“卡片”类生成卡片对象列表?
【发布时间】:2020-11-10 14:52:41
【问题描述】:

我正在尝试为我的 Python 初学者课程制作一副卡片,这是我目前拥有的代码:

import random
import itertools

class Card:
    def _init_(self, value, suit):
        self.value = value
        self.suit = suit
        
value = ['Ace', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jack','Queen', 'King']
suit = ['Spades', 'Diamonds', 'Hearts', 'Clubs']

我打算做的(以及我认为它正在做的)是使用“值”和“花色”来创建 52 种不同的可能组合,就像一副真正的纸牌一样。现在,我只想打印所有这 52 种组合的列表。所以我有三个问题:

  1. 到目前为止,这一切都正确吗?
  2. 如何打印这些卡片的列表?
  3. 是否可以有两个可更改的不同列表(例如,能够将一张新牌抽到牌组中/打出一张牌)?

【问题讨论】:

标签: python


【解决方案1】:
  1. 是的,没错,你只需要在“init”(__init__)的每一边加上两个下划线。

  2. 在另一个for 循环中创建一个for 循环:

cards = []
for v in value:
    for s in suit:
        cards.append(Card(v, s))

  1. 您可以append()pop() 等。更改列表。

【讨论】:

    【解决方案2】:

    或者,如果你是 python 生成器的粉丝,你可以这样写你的卡片创建:

    cards= [
        Card(v, s) for v in value for s in suit
    ]
    

    【讨论】:

      猜你喜欢
      • 2017-12-26
      • 2019-08-13
      • 2019-08-21
      • 2015-09-30
      • 2020-09-08
      • 2021-10-30
      • 2019-01-31
      • 2021-02-26
      • 1970-01-01
      相关资源
      最近更新 更多