擅长:python、mysql、java
<p>有关您的逻辑问题,请参阅@Daniel的答案。但我建议你重做你的逻辑。没有理由有复杂的指数或两个不同的甲板</p>
<p>以下是我如何在自己制作的扑克程序中创建牌组:</p>
<pre><code>for _ in range(decks_):
for val in (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14):
for suit in ("Hearts", "Spades", "Clubs", "Diamonds"):
self.cards.append(Card(val, suit))
if self.shuffle_cards:
shuffle(self.cards)
</code></pre>
<p>您没有多个组,因此不需要第一个<code>for</code>循环,除非您希望在将来添加更多组</p>
<p>您可以这样定义命名词典:</p>
<pre><code>value_names = {2: 'Two', 3: 'Three', 4: 'Four', 5: 'Five', 6: 'Six', 7: 'Seven', 8: 'Eight', 9: 'Nine',
10: 'Ten', 11: 'Jack', 12: 'Queen', 13: 'King', 14: 'Ace'}
suit_names = {"Hearts": '♥', "Spades": '♠', "Clubs": '♣', "Diamonds": '♦'}
</code></pre>
<p>然后将您的卡类定义为:</p>
<pre><code>class Card:
"""A class containing the value and suit for each card"""
def __init__(self, value, suit):
self.value = value
self.suit = suit
self.vname = value_names[value]
self.sname = suit_names[suit]
</code></pre>