Python 创建一个函数,该函数使用卡片列表并生成红色和奇数卡片列表
我必须编写函数red_odd,它消耗一个卡片列表hand,并生成一个红色(即“钻石”或“红心”)的卡片列表,这些卡片具有奇数值,按照它们在消耗列表中出现的顺序排列。无法对已使用列表进行变异 比如说, 红色奇数([card1,card2,card3,card4])=>[card2] 到目前为止,我有一个:Python 创建一个函数,该函数使用卡片列表并生成红色和奇数卡片列表,python,class,Python,Class,我必须编写函数red_odd,它消耗一个卡片列表hand,并生成一个红色(即“钻石”或“红心”)的卡片列表,这些卡片具有奇数值,按照它们在消耗列表中出现的顺序排列。无法对已使用列表进行变异 比如说, 红色奇数([card1,card2,card3,card4])=>[card2] 到目前为止,我有一个: class card: 'Fields: suit, value' def __init__(self, suit, value): self.suit = su
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
它没有运行,我也不确定哪里出了问题。谢谢您的帮助。您只需调用您的函数:
odd_red_cards = red_odd([card1,card2,card3,card4])
print(odd_red_cards)
这会给你更多的调试时间
请注意,添加一个
\uuuu str\uuuu
或\uuu repr\uuuu
功能可能会很有用,以允许您的卡打印更自然一些,这可能有助于发现其他错误。e、 g:
class card(object):
...
def __repr__(self):
return '{suit} {value}'.format(suit=self.suit,value=self.value)
你的划分不正确。e、 g.10将显示为
10/2
->5!=0
。您需要检查模,例如,evens的10%2==0
<代码>=代码>用于赔率。运行正常;你只是从来没有真正调用过你的函数。虽然你的数学是错误的(你需要c.value%2
而不是c.value/2
),但值得一提的是:他需要在他的卡片
类中有一个\u str\u
方法来打印任何有用的东西。