0

関数 red_odd を作成する必要があります。この関数は、手札のカードのリストを消費し、赤 (つまり、「ダイヤモンド」または「ハート」) で奇数の値を持つカードのリストを、表示される順序で生成します。消費されたリスト。消費されたリストは変更できません。

例えば、

red_odd([カード1, カード2, カード3, カード4]) => [カード2]

だから私はこれまでこれを持っています:

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__または関数を追加すると__repr__、カードがもう少し自然に印刷されるようになると便利な場合があることに注意してください。これは、今後他のバグを見つけるのに役立ちます。例えば:

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