Python 为什么我的函数中出现类型错误?
我编写这个函数是为了给Python 21点游戏“得分”(我知道aces可以是1或11,这是将来需要解决的问题)。输入是元组(卡片)列表,秩可以是2-10或a、J、K或Q 有时,我会收到一个类型错误,它的内容是:引用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
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:它是每个错误的字符串,然后仅对值进行假设。