python数据类型——数字

6次阅读

共计 2789 个字符,预计需要花费 7 分钟才能阅读完成。

整型 Integers
整型运算,加减乘:
2 + 2
4

3 – 4
-1

4 * 5
20

在 Python 2.7 中,整型的运算结果只能返回整型,除法的结果也不例外。
例如 12 / 5 返回的结果并不是 2.4,而是 2:
12 / 5
2

幂指数:
2 ** 5
32

取余:
32 % 5
2

赋值给变量:
a = 1
a
1

使用 type() 函数来查看变量类型:
type(a)
int

整型数字的最大最小值:
在 32 位系统中,一个整型 4 个字节,最小值 -2,147,483,648,最大值 2,147,483,647。
在 64 位系统中,一个整型 8 个字节,最小值 -9,223,372,036,854,775,808,最大值 9,223,372,036,854,775,807。
import sys
sys.maxint
2147483647

长整型 Long Integers
当整型超出范围时,Python 会自动将整型转化为长整型,不过长整型计算速度会比整型慢。
a = sys.maxint + 1
print type(a)
<type ‘long’>

长整型的一个标志是后面以字母 L 结尾:
a
2147483648L

可以在赋值时强制让类型为长整型:
b = 1234L
type(b)
long

长整型可以与整型在一起进行计算,返回的类型还是长整型:
a – 4
2147483644L

浮点数 Floating Point Numbers
a = 1.4
type(a)
float

在之前的除法例子 12 / 5 中,假如想要使返回的结果为 2.4,可以将它们写成浮点数的形式:
12.0 / 5.0
2.4

12 / 5.0
2.4

12.0 / 5
2.4

上面的例子说明,浮点数与整数进行运算时,返回的仍然是浮点数:
5 + 2.4
7.4

浮点数也可以进行与整数相似的运算,甚至可以取余:
3.4 – 3.2
0.19999999999999973

12.3 + 32.4
44.7

2.5 ** 2
6.25

3.4 % 2.1
1.2999999999999998

Python 的浮点数标准与 C,Java 一致,都是 IEEE 754 floating point standard。
注意看 3.4 – 3.2 的结果并不是我们预期的 0.2,这是因为浮点数本身储存方式引起的,浮点数本身会存在一点误差。
事实上,Python 中储存的值为 ’0.199999999999999733546474089962430298328399658203125’,因为这是最接近 0.2 的浮点数。|
‘{:.52}’.format(3.4 – 3.2)
‘0.199999999999999733546474089962430298328399658203125’

当我们使用 print 显示时,Python 会自动校正这个结果
print 3.4 – 3.2
0.2

可以用 sys.float_info 来查看浮点数的信息:
import sys
sys.float_info
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)

例如浮点数能表示的最大值:
sys.float_info.max
1.7976931348623157e+308

浮点数能表示的最接近 0 的值:
sys.float_info.min
2.2250738585072014e-308

浮点数的精度:
sys.float_info.epsilon
2.220446049250313e-16

复数 Complex Numbers
Python 使用 j 来表示复数的虚部:
a = 1 + 2j
type(a)
complex

可以查看它的实部,虚部以及共轭:
a.real
1.0

a.imag
2.0

a.conjugate()
(1-2j)

交互计算
可以将复杂的表达式放在一起计算:
1 + 2 – (3 * 4 / 6) ** 5 + 7 % 5
-27

在 Python 中运算是有优先级的,优先级即算术的先后顺序,比如“先乘除后加减”和“先算括号里面的”都是两种优先级的规则,优先级从高到低排列如下:

() 括号

** 幂指数运算

* / // % 乘,除,整数除法,取余运算
‘+ -‘ 加减

整数除法,返回的是比结果小的最大整数值:
12.3 // 5.2
2.0

12.3 // -4
-4.0

简单的数学函数
绝对值:
abs(-12.4)
12.4

取整:
round(21.6)
22.0

最大最小值:
print min(2, 3, 4, 5)
print max(2, 4, 3)
2
4

变量名覆盖
不要用内置的函数来命名变量,否则会出现意想不到的结果:
type(max)
builtin_function_or_method

不要这样做!!!
max = 1
type(max)
int

max(4, 5)
—————————————————————————

TypeError Traceback (most recent call last)

<ipython-input-41-c60446be959c> in <module>()
—-> 1 max(4, 5)

TypeError: ‘int’ object is not callable

类型转换
浮点数转整型,只保留整数部分:
print int(12.324)
print int(-3.32)
12
-3

整型转浮点型:
print float(1.2)
1.2

其他表示
除了 10 进制外,整数还有其他类型的表示方法。
科学计数法:
1e-6
1e-06

16 进制,前面加 0x 修饰,后面使用数字 0 -9A-F:
0xFF
255

8 进制,前面加 0 或者 0o 修饰,后面使用数字 0 -7:
067
55

2 进制,前面加 0b 修饰,后面使用数字 0 或 1:
0b101010
42

原地计算 In-place
Python 可以使用下面的形式进行原地计算:
b = 2.5
b += 2
print b
b *= 2
print b
b -= 3
print b
4.5
9.0
6.0

布尔型 Boolean Data Type
布尔型可以看成特殊的二值变量,其取值为 True 和 False:
q = True
type(q)
bool

可以用表达式构建布尔型变量:
q = 1 > 2
print q
False

常用的比较符号包括:
<, >, <=, >=, ==, !=

Python 支持链式比较:
x = 2
1 < x <= 3
True

本人对于 Python 学习创建了一个小小的学习圈子,为各位提供了一个平台,大家一起来讨论学习 Python。欢迎各位到来 Python 学习群:923414804 一起讨论视频分享学习。Python 是未来的发展方向,正在挑战我们的分析能力及对世界的认知方式,因此,我们与时俱进,迎接变化,并不断的成长,掌握 Python 核心技术,才是掌握真正的价值所在。

正文完
 0