0

我必须编写函数 red_odd,它使用卡片列表、手牌列表,并生成红色卡片(即“钻石”或“红心”)且具有奇数值的列表,按照它们出现的顺序排列消费清单。消费列表不能被改变。

例如,

red_odd([card1, card2, card3, card4]) => [card2]

所以到目前为止我有这个:

class card:
    'Fields: suit, value'
    def __init__(self, suit, value):
        self.suit = suit
        self.value = value

card1 = card('spades', 8) 
card2 = card('hearts', 5) 
card3 = card('diamonds', 6) 
card4 = card('clubs', 5)

def red_odd(hand):
    card_list = []
    for c in hand:
        if (c.suit == 'diamonds' or c.suit == 'hearts')  and (c.value / 2 != 0):
            card_list.append(c)
    return card_list

它没有运行,我不确定我哪里出错了。谢谢你的帮助。

4

1 回答 1

2

你只需要调用你的函数:

odd_red_cards = red_odd([card1,card2,card3,card4])
print(odd_red_cards)

这会给你更多的调试。


请注意,添加一个__str__or__repr__函数以使您的卡片打印得更自然一点可能很有用,这对于查找其他错误可能很有用。例如:

class card(object):
     ...
     def __repr__(self):
         return '{suit} {value}'.format(suit=self.suit,value=self.value)
于 2013-04-02T16:44:23.140 回答