Python 将字符串显示为卡值

Python 将字符串显示为卡值,python,string,list,python-2.7,Python,String,List,Python 2.7,因此,我正在制作一副纸牌。对于21点游戏,我在显示卡牌然后给它赋值时遇到了问题(Facecards/Ace,很麻烦),有人能帮我提取值,但仍然显示选择为字符串的卡牌吗 suits = 'cdhs' ranks = '23456789TJQK' deck = tuple(''.join(card) for card in itertools.product(ranks,suits)) usrhand = random.sample(deck,2) #print usrhand fval = (s

因此,我正在制作一副纸牌。对于21点游戏,我在显示卡牌然后给它赋值时遇到了问题(Facecards/Ace,很麻烦),有人能帮我提取值,但仍然显示选择为字符串的卡牌吗

suits = 'cdhs'
ranks = '23456789TJQK'
deck = tuple(''.join(card) for card in itertools.product(ranks,suits))
usrhand = random.sample(deck,2)
#print usrhand

fval = (str(usrhand[0]))[:1]
sval = (str(usrhand[1]))[:1]
#Need to check out TJQKA
#Error here, because val could be T
value = int(fval) + int(sval)

print("Your Hand: " + str(usrhand[0:1]))
print(value)
rank_from_str=dict(zip(“23456789TJQKA,[2,3,4,5,6,7,8,9,10,10,11]))
打印来自_str['A']的排名
hand=“TTA”
手牌秩=和(手牌的秩从[card]开始)
如果手牌排名>21:#如果我们的手牌大于21
对于范围内的i(hand.count(“A”):#转换aces'
排名-=10#将11改为1(减去10)

如果我们俩都没有回答他的问题。他在玩21点游戏。他需要能够得到21点的卡值。AsJd应该是21:)呃。。。我不需要卡片:-P但根据需要调整卡片值应该不难。唯一的问题是
A
是11或1<代码>A=1如果值>21,否则11
@AdamSmith这不太正确,因为它必须是11,然后在计算完所有分数后减去。。。一个像你这样列出的条件不会完全切断它,当玩家不应该考虑<代码> 8,A,8 < /COD>或<代码> A67 < /COD>时,会导致玩家(或经销商)被破坏。我知道我们中的一个人能够掌握基本的阅读理解能力。我仍在为此奋斗!:)谢谢我能在usr手后插入这个吗?我对python有点陌生。所以这条记录只是把VAL和数字联系起来,对吗?
# assumes Python 3
import random

suits = {
    "C":0,
    "D":13,
    "H":26,
    "S":39
}
ranks = {
    "2":2,
    "3":3,
    "4":4,
    "5":5,
    "6":6,
    "7":7,
    "8":8,
    "9":9,
    "T":10,
    "J":11,
    "Q":12,
    "K":13,
    "A":14
}

deck = tuple(''.join(card) for card in itertools.product(ranks,suits))
hand = random.sample(deck, 2)

value = sum(ranks[card[0]] + suits[card[1]] for card in hand)

print("Your hand:", str(hand))
print("Value:", str(value))
rank_from_str = dict(zip("23456789TJQKA",[2,3,4,5,6,7,8,9,10,10,10,10,11]))
print rank_from_str['A']

hand = "TTA"
hand_rank = sum(rank_from_str[card] for card in hand)
if hand_rank > 21: # if our hand is bigger than 21
   for i in range(hand.count("A")): #convert aces'
       hand_rank -= 10 #change 11 to 1 (subtract 10)
       if hand_rank <= 21: break #until we have less than 21
       #or until we run out of aces

print "HAND RANK:",hand_rank