第五章、数字

Python的数字类型

在Python中,数字并不是一个真正的对象类型,而是一个类似类型的分类。

Python数字类型的完整工具包括:

整数和浮点数

复数

固定精度的十进制数

有理分数

集合

布尔类型

无穷的整数精度

各种数字内置函数和模块

1、数字常量:

整数和浮点数常量。

Python2.6中的整数:一般整数和长整数。

Python3.0中的整数:一个单独的类型。

十六进制数、八进制和二进制常量。

复数。

编写其他的数字类型。

2、内置数学工具和扩展:

表达式操作符

内置数学函数

公用模块

3、Python表达式操作符:

表达式是处理数字的最基本的工具。

①、混合操作所遵循的操作符优先级

②、括号分组的子表达式

③、混合类型自动升级

④、预习:运算符

在实际应用中的数字

1、变量和基本的表达式:

变量在它第一次赋值时创建。

变量在表达式中使用将被替换为它们的值。

变量在表达式中使用以前必须已赋值。

变量像对象一样不需要在一开始进行声明。

2、数字显示的格式:

3、比较:一般的和连续的:

4、除法:传统除法、Floor除法和真除法:

X/Y:传统除法和真除法。在Python2.6或之前的版本中,这个操作对于整数会省去小数部分,对于浮点数会保持小数部分。在Python3.0版本中将会变成真除法(无论任何类型都会保持小数部分)。

X//Y:Floor除法。在Python2.2中新增的操作,在Python2.6和Python3.0中均能使用。这个操作不考虑操作对象的类型,总会省略掉结果的小数部分,剩下最小的能整除的整数部分。

①、支持两个Python版本

②、Floor除法VS截断除法

③、为什么截断很重要

5、整数精度:

6、复数:

7、十六进制、八进制、二进制计数:

oct函数会将十进制数转换为八进制数,hex函数会将十进制数转换为十六进制数,而bin函数会将十进制数转换为二进制。

内置的int函数会将一个数字的字符串变换为一个整数,并可以通过定义的第二个参数来确定变换后的数字的进制。

eval函数将会把字符串作为Python代码。

你能够使用字符串格式化方法调用和表达式将一个整数转换成八进制数和十六进制数的字符串。

8、位操作:

除了一般的数学运算(加法、减法等),Python也支持C语言的大多数数学表达式。这包括那些把整数当作二进制位串对待的操作。

9、其他的内置数学工具:

除了核心对象类型以外,Python还支持用于数字处理的内置函数和内置模块。

其他数字类型

1、小数数字:

比其他数据类型复杂一些,小数是通过一个导入的模块调用函数后创建的,而不是通过运行常量表达式创建的。

小数是有固定的精度的浮点值。

①、基础知识:

我们能够通过调用在decimal模块中的Decimal的构造函数创建一个小数对象,并传入一个字符串,这个字符串有我们希望在结果中显示的小数位数。

当不同精度的小数在表达式中混编时,Python自动升级为小数位数最多的。

②、设置全局精度:

decimal模块中的其他工具可以用来设置所有小数数值的精度。decimail.getcontext().prec=x,将全局精度设置为x。

③、小数上下文管理器:

2、分数类型:

Python2.6和Python3.0引入了一种新的数字类型——分数,它实现了一个有理数对象。

①、基础知识:

分数是前面小节所介绍的已有的小数固定精度类型的“近亲”,它们都可以通过固定小数位数和指定舍入或截断策略来控制数值精度。

>>>from fractions import Fraction

>>>x=Fraction(1,3)

②、数值精度:

③、转换和混合类型:

为了支持分数转换,浮点数对象现在有一个方法,能够产生它们的分子和分母比,分数有一个from_float方法,并且float接受一个Fraction作为参数。

集合

Python2.4引入了一种新的类型——集合(set),这是一些唯一的、不可变的对象的一个无序集合(collection),这些对象支持与数学集合理论相对应的操作。

1、Python2.6中的集合基础知识:

要创建一个集合对象,向内置的set函数传递一个序列或其他的可迭代的对象。

集合通过表达式操作符支持一般的数学集合运算。除了表达式,集合对象还提供了对应这些操作的方法,以及更多的支持改变集合的方法,集合add方法插入一个项目、update是按位置求并集,remove根据值删除一个项目(在任何集合实例或集合类型名上运行dir来查看所有可用的方法)。

2、Python3.0中的集合常量:

Python3.0添加了新的集合常量形式,该形式使用前面为字典所保留的花括号。

空的集合必须通过内置函数set来创建,并且以同样的方式显示。

3、不可变限制和冻结集合:

集合只能包含不可变的(即可散列的)对象类型。

如果需要在另一个集合中存储一个集合,可以像调用set一样来调用frozenset,但是,它创建一个不可变的集合,该集合不可修改并且可以嵌套到其他集合中。

4、Python3.0中的集合解析:

5、为什么使用集合:

布尔型

Python如今正式地有了一种明确的布尔型数据类型,叫做bool,其值为True和False,并且其值True和False是预先定义的内置的变量名。

数字扩展

尽管Python的核心数字类型提供的功能对于大多数应用程序已经够用了,还是有大量的第三方开源扩展可以用来解决更加专门的需求。

本章小结

本章介绍了Python数字对象类型和能够应用于它们的操作。在这过程中,我们学习了标准的整数和浮点数类型,以及一些较少见和不常用的类型。例如,复数、分数和集合。我们也学习了Python的表达式语法、类型转换、位操作以及各种在脚本中编写数字的常量形式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • 5.1 数字类型 整形、长整形、布尔型、双精度浮点型、十进制浮点型和复数。 创建数值对象并赋值 在赋值的同时,被创...
    Bioconductor阅读 238评论 0 1
  • 内置函数Python解释器内置了许多功能和类型,总是可用的。他们是按字母顺序列在这里。 abs(x)返回一个数的绝...
    uangianlap阅读 1,223评论 0 0
  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,545评论 1 118
  • 一 和你一起哭泣也是幸福 你有温度的诗句 炙烤着我的思绪 一阵风、一阵雨 也是无限美好的故事 二 像受伤的孩子一样...
    激流脚印阅读 374评论 0 0
  • 七分依恋,三分倦 三刻归心,一刻怕见你 见你暮气沉沉 我属于北方 与芦笛诗人的悲吟 与歌颂有关 化好了妆,迎接你 ...
    伶仃六记阅读 219评论 2 0