一、Python基本数据类型一:数值类型
Python3数值数据类型支持int整型、float浮点数、complex复数、以及布尔值(0和1)
在Python2中,整数的大小是有限制的,即当数字超过一定的范围不再是int类型,而是长整型long,但是在Python3中取消long,用int表示长整型
1、整数类型:int
◆ 进制
|
进制 |
表示 |
例子 |
|
十进制 decimal |
无前缀数字 |
367 |
|
二进制 binary |
0b前缀 |
0b101101111 |
|
八进制 octal |
0o前缀 |
0o557 |
|
十六进制 hexadecimal |
0x前缀 |
0x16f |
>>> a = 0b101101111 >>> a 367
◆ 大小比较
|
m == n |
相等比较 |
m是否等于n |
|
m > n |
大于比较 |
m是否大于n |
|
m >= n |
大于或等于比较 |
m是否大于或者等于n |
|
m < n |
小于比较 |
m是否小于n |
|
m <= n |
小于或等于比较 |
m是否小于或者等于n |
>>> 7 >3 >= 3 True >>> 21 < 22 > 21 True >>> 21 < 22 > 23 False
◆ 运算
|
运算符 |
功能 |
备注 |
|
m + n |
加法 |
|
|
m - n |
减法 |
|
|
m * n |
乘法 |
|
|
m // n |
整数除法 |
结果是商的整数部分 |
|
m / n |
除法 |
“真”除法,得到小数 |
|
m % n |
求余数 |
|
|
divmod(m ,n) |
求整数除法和余数 |
|
|
m ** n |
求乘方 |
整数m的n次方 |
|
abs(m) |
求绝对值 |
>>> m = 33 >>> n = 22 >>> m, n (33, 22) >>> divmod(m, n) (1, 11) >>> m % n 11 >>> m / n 1.5 >>> m // n 1 >>> abs(-111) 111
2、浮点数:float
◆ 操作与int类似
◆ 只有17位有效数字,符合国际IEEE标准
◆ 进度转换导致精度误差
>>> 4.2 + 2.1 6.300000000000001
3、复数:complex
◆ 复数与复数之间只能比较是否相等,不能比较大小
>>> (1 + 2j) * (2 + 3j) (-4+7j) >>> (1 + 2j) / (2 + 3j) (0.6153846153846154+0.07692307692307691j) >>> (1+2j) ** 2 (-3+4j) >>> (1+2j).imag 2.0 >>> (1+2j).real 1.0 >>>
4、逻辑类型:bool
◆ 在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加
◆ 运算
与运算 and
或运算 or
非运算 not
>>> a = 1 >>> b = 0 >>> c = 1 >>> print((a and b), (a and c), (b or c), not(b), not(a)) 0 1 1 True False
>>> a = True >>> b = False >>> c = True >>> print((a and b), (a and c), (b or c), not(b), not(a)) False True True True False
◆ 优先级:not > and > or
>>> a and b or not(b) True
5、查询数值类型
◆ 可以用内置的 type() 函数或者isinstance ()函数
>>> a = 100 >>> b = 'abc' >>> print(type(a),type(b)) <class 'int'> <class 'str'> >>> print(isinstance(a, int), isinstance(b, int)) True False
◆ 两者的区别是
type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。
>>> class A: pass >>> class B(A): pass >>> isinstance(A(), A) True >>> isinstance(B(), A) True >>> type(A()) == A True >>> type(B()) == A False
浙公网安备 33010602011771号