通过调用Python 3中的函数为字符串分配数值

时间:2017-08-07 19:10:17

标签: python-3.x

我正在尝试在Python 3中创建一个二十一点模拟器,我正在尝试定义一个函数,它将为它处理的卡分配一个数值。我相信在调用我的函数时我犯了一个错误。

{
import random
import CardVal

cards = [
'AS', '2S', '3S', '4S', '5S', '6S', '7S', '8S', '9S', 'TS', 'JS', 'QS', 'KS',
'AC', '2C', '3C', '4C', '5C', '6C', '7C', '8C', '9C', 'TC', 'JC', 'QC', 'KC',
'AD', '2D', '3D', '4D', '5D', '6D', '7D', '8D', '9D', 'TD', 'JD', 'QD', 'KD',
'AH', '2H', '3H', '4H', '5H', '6H', '7H', '8H', '9H', 'TH', 'JH', 'QH', 'KH'
]
decks = 6 * cards


player = []
dealer = []

for i in range(2):
    player.append(decks.pop(random.randrange(len(decks) - 1)))
    dealer.append(decks.pop(random.randrange(len(decks) - 1)))


print('Players cards:', player)
print('Dealers card:', dealer[1])


total = 0
for i in range(len(player)):
    CardVal.card_value(player[i])

    total += player[i]
}

这是我正在调用的函数

{
def card_value(card):
    if '2' in card:
        card = 2
    elif '3' in card:
        card = 3
    elif '4' in card:
        card = 4
    elif '5' in card:
        card = 5
    elif '6' in card:
        card = 6
    elif '7' in card:
        card = 7
    elif '8' in card:
        card = 8
    elif '9' in card:
        card = 9
    elif 'T' in card or 'J' in card or 'Q' in card or 'K' in card:
        card = 10
    elif 'A' in card:
        card = 11
}

1 个答案:

答案 0 :(得分:0)

只需使用字典:

def card_value(card):
    values = {'T': 10, 'J': 10, 'Q': 10, 'K': 10, 'A': 11}
    if card[0].isdigit():
        return int(card[0])
    else:
        return values[card[0]]