Python核心编程笔记第五章----数字

5.1数字简介

Python支持多种数字类型:整型,长整型,布尔型,双精度浮点型,十进制浮点型和复数。

通过给数字对象重新赋值,可以更新一个数字对象。变量更像一个指针指向装变量值的盒子,对不可变的变量,无法改变盒子的内容,但可以将指针指向另一个盒子。

使用del语句删除对象的引用,就不能再使用这个引用。

5.2整型

布尔型:该类型的取值范围只有两个值,True和False。

标准整型:标准整型是最通用的数字类型。标准类型的取值范围是-2^31到2^31 -1

0101 84 -227 0x80 017

Python标准整型等价于C的长整型。

长整型:长整型是标准整型的超集,当你的程序需要使用比标准整型更大的整型时,在一个整型后面加上L,表示这个整型是长整型。

165464L -0x144L 121544451L 0xDEDECADEDEAL

核心风格:用大写字母L表示长整型

推荐使用L,能有效避免数字1和l的混淆。

5.3双精度浮点型

Python中的浮点型类似于C中的double类型,是双精度浮点型。

0.0 -777 1.6 -5765757.1 96e3 * 1.0

5.4复数

概念:虚数不能单独存在,总是和一个值为0.0的实数部分一起来构成一个复数。

复数由实数部分和虚数部分构成。

表示虚数的语法:real+imagj

实数部分和虚数部分都是浮点型

虚数部分后面必有后缀j和J

复数的内建属性

num.real 返回该复数的实部

num.imag 返回该复数的虚部

num.conjugate() 返回该复数的共轭复数

>>> a = -1.23+21.33j
>>> a.real
-1.23
>>> a.imag
21.33
>>> a.conjugate()
(-1.23-21.33j)

5.5操作符

Python支持不同的数字类型相加,它会强制将一个操作数转换为同另一个操作数相同的数据类型

这类转换的基本原则是:整型转换为浮点型,非复数转换为复数。

Python提供了coerce()内建函数来实现这种转换。

>>> 1 + 4.5
5.5
>>> 1 + 1.3+1.2j
(2.3+1.2j)

标准类型操作符

>>> 5.2 == 2.3
False
>>> -719 >= 833
False
>>> 5+4e >= 2-3e
True
>>> 2<5<9
True
>>> 77>66 == 66
True

算术操作符

1.除法

传统除法:如果是整型除法,传统除法会舍去小数部分,返回一个整型(地板除)。如果操作数之一是浮点型,则执行真正的除法。

>>> 1 / 2
0
>>> 1.0 / 2.0
0.5

真正的除法:除法运算总是返回真实的商,不管是整型还是浮点型。

现阶段使用from__future__import division指令,也可以做到这一点。

>>> from __future__ import division
>>> 1 / 2
0.5

地板除://除法不管操作数为何种数值类型,总是舍去小数部分,返回数字序列中比真正的商小的最接近的数字。

>>> 1 // 2
0
>>> 1.0 // 2.0
0.0

取余

>>> 3 % 2
1
>>> 6 % 1
0

幂运算

幂运算操作符和一元操作符之间的优先级关系比较特殊:幂运算操作符比其左侧操作数的一元操作符优先级低,比其右侧操作数的一元操作符的优先级高。

>>> -3 ** 2 #优先级高于左侧
-9
>>> 4 ** -1 #优先级低于右侧
0.25

位操作符(只适用于整型)

取反(~),按位与(&),或(|)和异或(^),以及左移(<<)和右移(>>)

负数会被当成正数的2进制补码处理。

左右移N位等同于无溢出检查的2的N次幂运算:2**N

对长整型来说,位操作符使用一种经修改的2进制补码形式,使得符号位可以无限向左扩展。

>>> 30 & 45
12
>>> 30 | 45
63
>>>
>>> 45 & 60
44
>>> ~30
-31
>>> 45 << 1
90
>>> 60 >> 2
15
>>> 30 ^ 45
51

5.6内建函数与工厂函数

数值工厂函数:bool()返回一个对象的布尔值

int()返回一个字符串或数值对象的整型表示。

long()返回一个字符或数据对象的长整型表示。

float()返回一个字符串或数据对象的浮点型表示。

complex()返回一个字符串的复数表示。

功能函数

abs()返回给定参数的绝对值。

>>> abs(-1)
1

coerce()返回一个类型转换完毕的两个数值元素的元素

>>> coerce(1.3, 123L)
(1.3, 123.0)
>>> coerce(1j, 123L)
(1j, (123+0j))

divmod()内建函数把除法和取余运算结合起来,返回一个包含商和余数的元组。

>>> divmod(10, 3)
(3, 1)
>>> divmod(10, 2.5)
(4.0, 0.0)

pow()进行指数运算

>>> pow(2, 5)
32
>>> pow(5, 2)
25

round()内建函数用于对浮点型进行四舍五入运算。它返回与第一个参数最接近的整型。

函数int()直接截去小数部分(返回值为整型)

函数floor()得到最接近原数但小于原数的整型(返回值为浮点型)

函数round()得到最接近原数的整型(返回值为浮点型)

>>> import math
>>> for eachnum in range(10):
...     print round(math.pi, eachnum)
...
3.0
3.1
3.14
3.142
3.1416
3.14159
3.141593
3.1415927
3.14159265
3.141592654

仅适用于整型的内建函数

hex()将数字转换为十六进制并以字符串形式返回

oct()将数字转换成八进制并以字符串形式返回

chr()将ASCII值的数字转换成ASCII字符

ord()接受一个ASCII或Unicode字符,返回相应的ASCII值或Unicode值

unichr()接受Unicode码值,返回其对应的Unicode字符。




猜你喜欢

转载自blog.csdn.net/qq_41805514/article/details/80374687