目录
一、整型和浮点型
二、运算符
数据类型是程序的基础,程序设计的本质就是对数据进行处理。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