尝试洗牌时出错
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)
我正在尝试洗牌,但我一直收到这个错误,我不知道如何解决。我是 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)