尝试洗牌时出错

Error while trying to shuffle a deck of cards

我正在尝试洗牌,但我一直收到这个错误,我不知道如何解决。我是 python 和 OOP 的新手,所以我认为这应该是我忽略的事情。

这是我的代码:

class Deck:
    def __init__(self):
        self.deck = []

        for suit in suits:
            for rank in ranks:
                card_created = Card(suit, rank)
                self.deck.append(card_created)

    def __str__(self):
        deck_comp = ""
        for card in self.deck:
            deck_comp += "\n"+ card.__str__()
        return "The deck has: " + deck_comp

    def shuffle(self):
        random.shuffle(self.deck)

    def deal_one(self):
        return self.deck.pop()

new_deck = Deck()

print(new_deck.shuffle())

当我运行程序时,我只得到“None”。但是,在洗牌之前,我会按顺序整理所有现有牌。

有谁知道如何解决这个问题?

您的 shuffle() 函数没有 return 任何值(random.shuffle() 也没有,这会打乱列表 in-place)。

相反,您应该在不同的行上执行对 .shuffle()print() 的调用:

new_deck.shuffle()
print(new_deck.deck)