<p>你应该把卡片映射到数值,然后计算手的总数,如果是21,然后打印“21点!”公司名称:</p>
<pre><code>import random
cards_values = {'J': 10, 'K': 10, 'Q': 10} # Face cards are 10
suits = ['C','H','D','S'] # Club, Heart, Diamond, Spade
cards = [2,3,4,5,6,7,8,9,10,"J","Q","K","A"]
deck = ['{}{}'.format(i,k) for i in suits for k in cards]
random.shuffle(deck) # shuffle the deck
card1, card2 = deck[:2] # Get two random cards
# Each card is SuitNumber, so a two of clubs is C2
# We need to get the second value to figure out if
# we have a winning blackjack hand
# Here we are checking the second part, if its one of the face cards
# get its value, otherwise the value is its actual number
# We convert it to an integer, so we can sum it and get
# the value of the hand
value_card1 = cards_values.get(card1[1], card1[1])
value_card2 = cards_values.get(card2[1], card2[1])
hand_value = int(value_card1) + int(value_card2)
if hand_value == 21:
print 'BlackJack!'
else:
# We need to check if the difference is
# 1 or 11, and the person had an Ace, he can
# still win
if hand_value - 21 in (1,11) and card1[1] == 'A' or card2[1] == 'A':
print 'BlackJack!'
else:
print 'Oops, you lose. Your cards were {} {}'.format(card1, card2)
</code></pre>