【发布时间】:2016-05-08 20:47:58
【问题描述】:
我正在尝试在 python 中构建一副纸牌,但我正在尝试将所有信息存储在字典中。我需要存储卡名(即 2、4、'K' 表示国王,'J' 表示杰克等),卡在黑色杰克中的价值(即 2 值 2,'A' 表示王牌值 1 或 11 取决于场景),以及该特定卡牌剩余的牌数。但是,当我编写我的 python 代码时,我意识到所有的卡值都等于 8。现在,我知道有些地方不对,但我是 python 新手,我试图理解为什么我会产生如此毁灭性的结果
代码示例:
class Card(object):
def __init__(self, list):
self.deck_list = list
self.construct_deck()
def construct_deck(self):
#Here we created a dictionary from the list keys
self.deck = dict.fromkeys(self.deck_list, {'total': 4, 'value': 0})
self.keys = self.deck.keys()
for key in self.keys:
try:
value = int(key)
except:
if key != 'A':
value = 10
else:
value = [1,11]
finally:
self.deck[key]['value'] = value
def shuffle_deck(self):
pass
l = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']
bj = Card(l)
print bj.deck
代码应执行以下操作:
- 如果键能够转换为 int,则它必须是 2-10,然后将值设置为键的整数版本
- 但是,如果 try 块失败,则该值必须是 char。所有漂亮牌(杰克、国王和王后)的值都是十,所以如果关键是“J”、“K”或“Q”,则值应设置为 10,否则应设置为列表 [1,11]。最后,finally 应该将值分配给与该键对应的值
【问题讨论】:
标签: python