读后感

我觉得使用python数据模型,还不如使用python对象模型。在python中,万物皆对象,一张牌是一个对象,一副牌也是一个对象。python巧妙的运用已经存在的数据模型,构建对象,只需要重写相关方法就可以实现其功能。

python风格的纸牌

import collectionsCard = collections.namedtuple('Card', ['rank', 'suit'])class FrenchDeck:ranks = [rank for rank in range(2, 11)] + list('JQKA')suits = list('shdc')def __init__(self):self._card = [Card(rank, suit) for rank in self.ranksfor suit in self.suits]def __getitem__(self, item):return self._card[item]def __len__(self):return len(self._card)if __name__ == '__main__':deck = FrenchDeck()print(len(deck))for c in deck:print(c)print(deck[0])print(deck[-1])

向量

from math import hypotclass Vector:def __init__(self, x=0, y=0):self._x = xself._y = y# 向量表示def __repr__(self):return 'Vector(%r,%r)' % (self._x, self._y)# 向量加法def __add__(self, other):x = self._x + other._xy = self._y + other._yreturn Vector(x, y)# 向量乘法def __mul__(self, scalar):return Vector(self._x * scalar, self._y * scalar)# 向量绝对值def __abs__(self):return hypot(self._x, self._y)# 零向量def __bool__(self):return bool(self._x) and bool(self._y)if __name__ == '__main__':v = Vector(3, 4)print(abs(v))print(v+v)print(v)print(bool(v))print(v*3)

代码编写事项

列表推导式不支持+操作
向量中的加法和乘法返回的是一个新的向量对象,需要调用构造方法。
零向量还可以对绝对值求值

流畅的python(一)python数据模型相关推荐

  1. python自学-Python 应该怎么学?

    0714更新: 之前说过骆昊 (jackfrued) 的"从新手到大师"的百天之路!今天给大家分享一个主学习路线的干货图谱,话不多说,直接上图! 这个图谱是按照[专业基础][数据分 ...

  2. python创意作品-python的作品

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 发现了编程与艺术又一个契合点,小开心一下. 其实这个过程非常简单. 我们 ...

  3. 孩子有必要学python编程,python编程小学生学好吗

    孩子学python有用吗 山东省在其最新出版的小学信息技术六年级教材中,加入了 Python 的内容,小学生都开始学 Python ,后生可畏. 浙江省新高中信息技术教材改革项目中,高中新生开始使用新 ...

  4. 卷积神经网络的Python实现,python卷积神经网络训练

    如何才能自学好python? 对于想要自学Python的小伙伴,这里整理了一份系统全面的学习路线,按照这份大纲来安排学习可以少走弯路,事半功倍. 第一阶段:专业核心基础阶段目标:1.熟练掌握Pytho ...

  5. 什么是Python线程?Python线程如何创建?

    相信正在学习Python技术或者对Python语言有一定了解的人对于Python线程应该都不陌生,但是也有刚接触Python的小伙伴对于Python线程并不了解,今天小编就跟大家聊聊什么是Python ...

  6. Python杂谈——Python都能干什么呢?

    Python 今年 28 岁了.尽管它比我的许多读者年纪还要大,但是仍然受到高度的关注,因为它可以被应用于如今你所能想得到的相当多的软件开发和操作场景.要管理本地或者云基础设施吗?Python可以.开 ...

  7. 【Python】Python简单入门

    Python介绍   Python是一种高级的.动态类型的多范型编程语言.现在常用的Python版本是Python3.x. Python代码通常被认为是伪代码,因为在简明易懂的几行代码中可以表达出非常 ...

  8. Python入门 Python自学路线 Python如何学习

    本文介绍Python入门 Python自学路线 Python如何学习.先说点题外话吧:首先呢,我刚开始接触编程的时候,学的是C,那时候Python还没有这么火,后来学了C++,PHP,Java,前端. ...

  9. 【Python】Python中令人头疼的变量作用域问题,终于弄清楚了

    [Python]Python中令人头疼的变量作用域问题,终于弄清楚了_fengdu78的博客-CSDN博客 [Python]Python中令人头疼的变量作用域问题,终于弄清楚了_fengdu78的博客 ...

  10. 范德蒙德矩阵在MATLAB中怎么表示,Python 之 Python与MATLAB 矩阵操作总结

    Python 之 Python与MATLAB 矩阵操作小结 一.线形代数理论基础 线形代数(linear algebra)是数学的一个分支,研究矩阵理论.向量空间.线性变换和有限维线形方程组等内容. ...

最新文章

  1. Selenium3自动化测试——11. 下拉框处理
  2. indexes和indices的区别
  3. 自建邮件服务器_EDM邮件营销需要掌握的一系列知识(有福利)
  4. 判断js中的数据类型的方法
  5. mysql8优化实战
  6. 今天的就每天练习这招的企业即时通讯
  7. opencv颜色识别_opencv-python污水颜色识别
  8. 运维工程师必会的109个Linux命令(1)
  9. Nginx 自定义404 页面
  10. 几款免费好用的OCR工具
  11. 优酷的视频地址 java_查找各大视频网站真实视频地址方法(乐视优酷会员腾讯56酷6pptv激动网)...
  12. 网页资源下载 -- 水浒传全集
  13. UWB定位系统的主要误差来源
  14. 24_MySQL高可用之MMM
  15. 迅为4418开发板-驱动-以模块的方式编译内核驱动
  16. 量化投资分析:定量分析项目和交易分析指标
  17. 爬虫那些事-网页爬虫设计思路
  18. time.h头文件解析
  19. vue文件流导出excel表格打不开
  20. 2---理解正余弦、复数求模、反正切和乘除运算的CORDIC算法实现

热门文章

  1. 计算机专业英语词汇1500词
  2. 【作业锦集】机器人学导论-空间变换及Matlab实现(part-2)
  3. mapgis6.7原创2019视频教程
  4. php程序员 软考考什么好,软考考什么好_软考哪个好考_软考哪个更容易考 - 希赛网...
  5. delphi商业源码
  6. Teechart图表应用技术详解—第三章之在图表上自行绘制
  7. f5 系统损坏,重新安全系统
  8. Win7主题文件themepack不能安装,低级错误!
  9. 哪几种情况可以销毁session(一般有3种)
  10. VBScriptVBS(二)变量、数组变量的应用与理解