Я пытаюсь создать колоду карт в python, но я пытаюсь сохранить всю информацию в словаре. Мне нужно сохранить имя карты (т. Е. 2, 4, «K» для короля, «J» для разъема и т. Д.), Значение, которое карта стоит в черном гнезде (т. Е. 2 стоит 2, «A» для туза стоит 1 или 11 в зависимости от сценария) и номер этой конкретной карты, оставшейся в колоде. Однако, когда я пишу свой код на Python, я понимаю, что все значения карт равны 8. Теперь я знаю, что что-то не так, но я новичок в python, и я пытаюсь понять, почему я даю такие разрушительные результаты.Итерация через dict в 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
код должен выполнить следующие действия:
- Если ключ был в состоянии быть превращена в междунар то оно должно быть 2-10, а значение, то установить на целочисленную версию ключа
- Однако, если блок try не прошел, значение должно быть символом. Стоимость всех симпатичных карт (jack, king и queen) составляет десять, поэтому, если ключ является либо «J», «K», либо «Q», значение должно быть установлено равным десяти, другое должно быть установлено на список [1,11]. Наконец, наконец, нужно присвоить значение значению, соответствующему этому ключу
Большое спасибо за помощь. Я видел, где я ошибся, и проблема решена –