【学习笔记】流畅的Python:纸牌实例、向量运算

namedtuple函数:

# collections.namedtuple构建一个简单的类来表示一张纸牌,
# card为类名,rank, suit类似于字典的key
card = collections.namedtuple('card', ['rank', 'suit'])

sorted与spades_high函数:

对于纸牌card(rank='2', suit='clubs'),spades_high函数返回的值为2x4+0=8,8返回到sorted中,

对于纸牌card(rank='2', suit='spades'),spades_high函数返回的值为2x4+2=11,11返回到sorted中,
对于纸牌card(rank='3', suit='clubs'),spades_high函数返回的值为3x4+0=12,12返回到sorted中,

以此类推到最后一张纸牌,sorted根据每张纸牌spades_high返回的值进行排序,实现升序排序。

suit_values = dict(spades=3, hearts=2, diamonds=1, clubs=0)
def spades_high(card):
    # index检测字符串ranks中是否包含子字符串card.rank
    rank_value = FrenchDeck.ranks.index(card.rank)
    return rank_value * len(suit_values) + suit_values[card.suit]
"""
sorted(deck, key=spades_high)详解:
deck运行__len__然后循环deck里面的值传给spades_high,sorted会根据函数spades_high返回的值的大小进行排序
"""
for card in sorted(deck, key=spades_high):  # key是排序过程调用的函数,也就是排序依据
    print(card)

字符串表示形式:

此处使用%返回的结果代替%r代表的对象,此外str.format也可以格式化字符串

# %函数返回的结果用来代替%r所代表的对象,%r获取对象各个属性的标准字符串表示形式
'Vector(%r, %r)' % (self.x, self.y)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值