Python 为什么我的函数中出现类型错误?

Python 为什么我的函数中出现类型错误?,python,typeerror,Python,Typeerror,我编写这个函数是为了给Python 21点游戏“得分”(我知道aces可以是1或11,这是将来需要解决的问题)。输入是元组(卡片)列表,秩可以是2-10或a、J、K或Q 有时,我会收到一个类型错误,它的内容是:引用score=score+rank时,+:'int'和'str'的操作数类型不受支持。我不知道为什么会有这样的问题,因为如果到了这个程度,排名必须是int。有人看到这个问题吗 def analyzeHand(hand): score = 0 for card in han

我编写这个函数是为了给Python 21点游戏“得分”(我知道aces可以是1或11,这是将来需要解决的问题)。输入是元组(卡片)列表,秩可以是2-10或a、J、K或Q

有时,我会收到一个类型错误,它的内容是:引用
score=score+rank
时,+:'int'和'str'的操作数类型不受支持。我不知道为什么会有这样的问题,因为如果到了这个程度,排名必须是int。有人看到这个问题吗

def analyzeHand(hand):
    score = 0
    for card in hand:
        rank = card[0]
        if (rank == 'A'):
            score = score + 11
        if (rank == 'K' or rank == 'Q' or rank == 'J'):
            score = score + 10
        else:
            score = score + rank
    return score

最后一个else中的
score=score+rank
,应该是

score += int(rank)

因为从上下文
rank
的类型为
str
,假设为“2”。“9”。

您应该调试代码。打印
排名
,然后将其添加到分数中。它可能不是整数。第二个
if
应该是
elif
。否则,如果
rank
'A'
,则将执行
else
块。Nit:它是每个错误的字符串,然后仅对值进行假设。