Python扑克牌get_value函数将剩余规则用else写在同一行实现咨询
Python 扑克牌数值计算函数补全方案
你可以直接在现有判断逻辑的末尾新增一行else分支实现需求,补全后的代码如下:
def get_value(num, suit): if (suit == 18 or suit == 15) and num == 7: return -21 elif suit == 16 and num == 7: return -11 elif num == 1 and (suit in (15, 16, 17, 18)): return 11 elif (num == 12 or num == 13) and (suit in (15, 16, 17, 18)): return 10 elif num == 11 and (suit in (15, 16, 17, 18)): return 25 else: return num
补充说明:
- 新增的
else: return num完全符合你要求的单行规则写法,所有未被前面特殊规则匹配的牌面(数字2到10的所有花色牌),都会直接返回和面值相等的数值,不需要额外写多分支判断 - 代码里额外把原来的多条件suit判断改成了
in语法,逻辑不变的情况下可读性更高,如果你不需要可以改回原来的写法,不影响else分支的效果
内容的提问来源于stack exchange,提问作者kevx
相关产品推荐
相关产品推荐

