4 回答

TA貢獻1883條經(jīng)驗 獲得超3個贊
您的第一個if陳述的問題是,您評估了 、 等的真值"1","2"它們都是真的。
您必須in card每次重復(fù):
def cardval(card):
if "2" in card or "3" in card or "4" in card: # etc.
return int(re.findall("\d+",card)[0])
# etc.

TA貢獻1943條經(jīng)驗 獲得超7個贊
你應(yīng)該改變:
if "2" or "3" or ... in card:
至:
if "2" in card or "3" in card or ...:
等等

TA貢獻1829條經(jīng)驗 獲得超4個贊
您可以執(zhí)行以下操作:
def cardval(card):
card_digit = re.findall("\d+",card)
if card_digit:
return card_digit[0]
elif "Ace" in card:
return 1
else:
return 10

TA貢獻1877條經(jīng)驗 獲得超1個贊
作為其他答案的替代方案,您還可以執(zhí)行以下操作:
>>> card = ['Diamond_Ace', 'Diamonds_1', 'Diamonds_Jack']
>>> if any(i.endswith(('2', '3', '4', '5', '6', '7', '8', '9', '10')) for i in card):
... print('Found it')
...
>>> if any(i.endswith(('Jack', 'Queen', 'King')) for i in card):
... print('Found it')
...
Found it
>>> if any(i.endswith('Ace') for i in card):
... print('Found it')
...
Found it
添加回答
舉報