目录

一、整型和浮点型

二、运算符


数据类型是程序的基础,程序设计的本质就是对数据进行处理。Python有设计良好的数据类型,以及丰富的内置函数。

数字是程序需要处理的最基本的数据类型,任何编程语言都提供了对数字类型的支持。

一、整型和浮点型

在Python2.x 中,数字类型共有4种,分别是整数(int)、长整数(long)、浮点数(float)和复数(complex)。

Python2.x 中的数字类型

数字类型

描述

整数(int)

一般意义上的数,包含八进制(以数字 0 开头)及十六进制(以 0x 开头),如:2007、-2007、07(八进制)和 0xAB (十六进制)等

长整数(long)

无限大小的数,在其结尾添加小写字母 l 或者大写字母 L ,如:20070000000000000000000L

浮点数(float)

小数,或者用 E 或 e 表示的幂,如:2.7、1234e+10、1.5E-10

复数(complex)

复数的虚部以字母 j 或 J 结尾,如:1+2j 、2.2+2.0J

在Python3 中,已经没有 long 这种数字类型,整数就只有 int 这一种类型。不过,这时的 int 类型的作用与Python2.x 中的long相同,也就是说,在Python 3 中,int 类型可保存任意大小的整数。

作为动态类型的语言,在Python中使用数字无须事先声明其类型。

>>> a = 1                                   #将 a 赋值为1,整数
>>> b = 12.5                                #将 b 赋值为12.5,浮点数
>>> a + b                                   #计算 a + b
13.5
>>> c = 20070000000000000                   #长整数(在Python 2.x 中,需要在长整数后面加上大写字母L或者小写字母l)
>>> c
20070000000000000
>>> d = 200700000000000000                  #长整数
>>> d
200700000000000000
>>> d - c                                   #计算 d - c
180630000000000000
>>> d + b
2.007e+17                                   #浮点数
>>> 2.30 - 1.30
0.9999999999999998                          #结果并不为1.00,由浮点数的精度所导致
>>> 2.3 - 1
1.2999999999999998                          #同样,这里的整型数字1被转换成浮点数进行运算
>>> 0o7 + 0o5                               #八进制(第1个字符为数字0,第2个字符为字母o。在Python 2.x 中,八进制数直接在数字前加0即可,不用加字母o)
12                                          #输出是十进制
>>> 0x7 + 0xa                               #十六进制
17                                          #输出为十进制
>>> print('%o' %(0o7 + 0o5))                #输出八进制(单引号中的是字母o,不是数字0)
14
>>> print('%x' %(0x7 + 0x5))                #输出十六进制
c
>>> m = 9 + 3j                              #复数形式
>>> n = 15 - 2j
>>> m + n                                   #复数运算
(24+1j)

二、运算符

在Python中,除了基本的算术运算符,如加、减、乘、除、取余等运算符以外,还有逻辑运算符,如:位移动、位逻辑运算等。

Python 运算符

运算符

描述

**

乘方运算符

*

乘法运算符

/

除法运算符

//

整除运算符

%

取余运算符

+

加法运算符

-

减法运算符

|

位或

^

位异或

&

位与

<<

左移运算,number左移n位数为:number * 2**n

>>

右移运算,number右移n位为:number//2**n

在复杂的表达式中往往使用多个运算符,表达式的计算顺序由运算符的优先级确定。在表达式中,先进行运算符优先级高的计算,对于同级运算符从左至右依次计算。

上表中的的运算符,越往下优先级越低,乘方运算符的优先级最高。乘法运算符、除法运算符、取余运算符、的优先级相同,其优先级较乘方运算符次之;加法运算符和减法运算符属同级运算符,剩下的逻辑运算符属于同级运算符,其优先级最低。

如果要使优先级低的运算符具有高优先级,可以使用括号将表达式括起来。

>>> 2 ** 5
32
>>> 2 ** 0
1
>>> 3 * 2
6
>>> 4 / 2          # 除法运算(在Python2.x中,结果将为整数2)
2.0
>>> 7 / 2
3.5                # 在Python2.x中,结果将被取整数,得到3
>>> 7 // 2         # 整除运算,结果将被取整数,得到3
3
>>> 7 % 2
1
>>> 5 ^ 3        # 位异或,5的二进制形式为101,3为011,异或后为110,即十进制的6
6
>>> 5 ^ 5
0
>>> 11 | 5       # 位或运算
15
>>> 12 & 12
12
>>> 2 * 5 ** 2   # 这里先计算 5 ** 2
50
>>> 2 + 3 * 5    # 这里先计算 3 * 5
17
>>> 2 + 3 ^ 5    # 这里先计算 2 + 3
0
>>> 2 + (3 ^ 5)  # 改变运算顺序,先计算 3 ^ 5 = 6
8
>>> 3 + 4 * 5 ** 2 - 20    # 先计算 5 ** 2 = 25,然后计算 4 * 25 = 100,再计算 3 +100 = 103,最后计算 103 - 20 = 83
83
>>> 4 >> 2      # 右移两位相当于除以4
1
>>> 4 >> 1      # 右移两位相当于除以2
2