用python求扑克牌玩二十一点,JKQ都等于10,A是11,但如果总和超过21,A会变成1,比如3
个A和一个6= 19,第一个A是11,后面两个A是1



用python求扑克牌玩二十一点,JKQ都等于10,A是11,但如果总和超过21,A会变成1,比如3
个A和一个6= 19,第一个A是11,后面两个A是1



def blackjack_hand_score(hand):
anum=0
score=0
for i in hand:
i=i.upper()
if i.isnumeric():
score+=int(i)
elif i=='A':
anum+=1
else:
score+=10
if anum>0:
if score + 11 + (anum-1)>21:
score+=anum
else:
score+=11+(anum-1)
return score
hand=['A','K']
print('Hand:',hand,'hand score:',blackjack_hand_score(hand))
hand=['A','J','A']
print('Hand:',hand,'hand score:',blackjack_hand_score(hand))
hand=['9','8','7']
print('Hand:',hand,'hand score:',blackjack_hand_score(hand))
hand=['A','A']
print('Hand:',hand,'hand score:',blackjack_hand_score(hand))
hand=['A','A','A','K']
print('Hand:',hand,'hand score:',blackjack_hand_score(hand))