首页 > 解决方案 > 让代码在列表的所有元素上运行

问题描述

下面是一些代码。代码本身做了我需要它做的事情,但只在“手”列表的第一个元素上做。我需要它对第二个元素执行相同的操作并将其添加到总数中。我相信我的运行总代码有效,我似乎无法让它在第二张卡上运行代码。(这些元素代表扑克牌。)

hand = ['JS','3C']


total = 0

for cards in (hand):
        
    
    card1 = hand[0].split(sep =',') ### Card 1 in hand list is split.

    card1_str = ' '.join(card1)  ### Card 1 is converted to string.

    card1_value = card1_str[0].split() ### Card value is stripped
    card1_suit = card1_str[1].split()  ### Card suit is stripped
        
        
    card1_value = ''.join(card1_value)
    card1_suit = ''.join(card1_suit)
    
    if card1_value == 'K' or card1_value == 'Q' or card1_value == 'J' or card1_value == 'T':
        total = 10
    elif card1_value == 'A':
        total = 11
    else:
        card1_value = int(card1_value) 
        total = card1_value

标签: python

解决方案


您必须使用您在for循环主体内的语句中引入的变量,以使其按预期工作。此外,许多格式化代码都是多余的,因为卡片已经是字符串:

hand = ['JS', '3C']
total = 0

for card in hand:
    
    card_value = card[0] 
    card_suit = card[1]  
        
    if card_value in 'KQJT':
        total += 10
    elif card_value == 'A':
        total += 11
    else:
        total += int(card_value)
        
print(total)

输出:

13

推荐阅读