《流畅的python》这本确实老辣
最近在慢慢看几页,
第一章的示例代码,实现一副扑克牌。
确实老辣~
不是高手,没有这感觉,我慢慢学吧。
import collections
from random import choice
Card = collections.namedtuple('Card', ['rank', 'suit'])
class FrechDeck:
    ranks = [str(n) for n in range(2, 11)] + list('JQKA')
    suits = 'spades diamonds clubs hearts'.split()
    def __init__(self):
        self._cards = [Card(rank, suit) for suit in self.suits
                       for rank in self.ranks]
    def __len__(self):
        return len(self._cards)
    def __getitem__(self, position):
        return self._cards[position]
suit_values = dict(spades=3, hearts=2, diamonds=3, clubs=4)
def spades_high(card):
    rank_value = FrechDeck.ranks.index(card.rank)
    return rank_value * len(suit_values) + suit_values[card.suit]
beer_card = Card(', 'diamonds')
print(beer_card)
deck = FrechDeck()
print(len(deck))
print(deck[0])
print(deck[-1])
print(choice(deck))
print(deck[:3])
print(deck[12::13])
for card in deck:
    # print(card)
    pass
for card in reversed(deck):
    # print(card)
    pass
print(Card('Q', 'hearts') in deck)
', 'beats') in deck)
for card in sorted(deck, key=spades_high):
    # print(card)
    pass
输出:
Card(rank=', suit='diamonds') Card(rank=', suit='spades') Card(rank='A', suit='hearts') Card(rank=', suit='hearts') [Card(rank=', suit='spades')] [Card(rank='A', suit='spades'), Card(rank='A', suit='diamonds'), Card(rank='A', suit='clubs'), Card(rank='A', suit='hearts')] True False Process finished with exit code
《流畅的python》这本确实老辣的更多相关文章
- 流畅的python(笔记)
		流畅的python中有很多奇技淫巧,整本书都在强调如何最大限度地利用Python 标准库.介绍了很多python的不常用的数据类型.操作.库等,对于入门python后想要提升对python的认识应该有 ... 
- 流畅的python 对象引用 可变性和垃圾回收
		对象引用.可变性和垃圾回收 变量不是盒子 人们经常使用“变量是盒子”这样的比喻,但是这有碍于理解面向对象语言中的引用式变量.Python 变量类似于 Java 中的引用式变量,因此最好把它们理解为附加 ... 
- 《流畅的python》读书笔记
		流畅的python 第1章 python数据模型 ---1.1 一摞Python风格的纸牌 特殊方法,即__method__,又被称为魔术方法(magic method)或者双下方法(dunder-m ... 
- 《流畅的Python》一副扑克牌中的难点
		1.现在在看<流畅的Python>这本书,看了三页就发现,这本书果然不是让新手来入门的,一些很常见的知识点能被这个作者玩出花来, 唉,我就在想,下面要分析的这些的代码,就算我费劲巴拉的看懂 ... 
- [读书笔记]流畅的Python(Fluent Python)
		<流畅的Python>这本书是图灵科技翻译出版的一本书,作者Luciano Ramalho. 作者从Python的特性角度出发,以Python的数据模型和特殊方法为主线,主要介绍了pyth ... 
- 《流畅的Python》Object References, Mutability, and Recycling--第8章
		Object References, Mutability, and Recycling 本章章节: Variables Are Not Boxes identity , Equality , Al ... 
- 《流畅的Python》 第一部分 序章 【数据模型】
		流畅的Python 致Marta,用我全心全意的爱 第一部分 序幕 第一章 Python数据模型 特殊方法 定义: Python解释器碰到特殊句法时,使用特殊方法激活对象的基本操作,例如python语 ... 
- SyntaxError: Non-UTF-8 code starting with '\xbb' in file D:\流畅学python\ex32.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
		1. 报错如下: SyntaxError: Non-UTF-8 code starting with '\xd3' in file D:\流畅学python\ex34.py on line 4, bu ... 
- 流畅的Python读书笔记(二)
		2.1 可变序列与不可变序列 可变序列 list. bytearray. array.array. collections.deque 和 memoryview. 不可变序列 tuple. str 和 ... 
随机推荐
- SPFA最短路算法
			SPFA是改良后的BellmanFord(在刘汝佳的入门经典2上,甚至直接将SPFA归为BellmanFord的队列优化版本). 这是算法的伪代码 d[s] = 0, 其余d[?] = INF; 将s ... 
- SP8093 JZPGYZ - Sevenk Love Oimaster 解题报告
			SP8093 JZPGYZ - Sevenk Love Oimaster 题目大意 给定\(n(n\le 10000)\)个模板串,以及\(m(m\le 60000)\)个查询串(模板串总长\(\le ... 
- 置换群和Burnside引理,Polya定理
			定义简化版: 置换,就是一个1~n的排列,是一个1~n排列对1~n的映射 置换群,所有的置换的集合. 经常会遇到求本质不同的构造,如旋转不同构,翻转交换不同构等. 不动点:一个置换中,置换后和置换前没 ... 
- 【转】如何学习android开发
			1.Java基础 很多朋友一上手就开始学习Android,似乎太着急了一些.Android应用程序开发是以Java语言为基础的,所以没有扎实的Java基础知识,只 是机械的照抄别人的代码,是没有任何意 ... 
- Redis在window上安装
			转:https://www.cnblogs.com/M-LittleBird/p/5902850.html 在windows上启动RabbitMQ: 这是Redis的启动,需要制定配置文件,否则连接不 ... 
- bzoj千题计划261:bzoj3294: [Cqoi2011]放棋子
			http://www.lydsy.com/JudgeOnline/problem.php?id=3294 如果一个颜色的棋子放在了第i行第j列,那这种颜色就会占据第i行第j列,其他颜色不能往这儿放 设 ... 
- [整理]Win下好用的Markdown工具
			用过haroopad,MarkPad,Sublime + markdown插件,前2款勉强能用,都处于继续开发中,haroopad支持的语法相对较少,提示也不明显,MarkPad还是有不少bug. 后 ... 
- 为ASP.NET控件加入快捷菜单
			ContextMenu Control 快捷菜单控件概述: MSDN Liabrary 中包含了几个DHTML快捷菜单的示例.分别提供了对这一功能的不能实现方法.一个快捷菜单就是在页面中任何位置的一组 ... 
- 【转】把Git Repository建到U盘上去
			CHENYILONG Blog 把Git Repository建到U盘上去 转 把Git Repository建到U盘上去 Git很火.原因有三: 它是大神Linus Torvalds的作品,天然地具 ... 
- iOS 根据生日得到生肖,星座,年龄的算法
			根据用户生日,得到相应的年龄,星座和生肖.有的项目中可能会用到,贴出来共享. 得到年龄,这个很简单了: - (void)getAgeWith:(NSDate*)birthday{ //日历 NSCal ... 
