数字类型
1.计算
1.1、支持混合运算
当一个二元算术运算符的操作数有不同数值类型时,"较窄"类型的操作数会拓宽到另一个操作数的类型,其中整数比浮点数窄,浮点数比复数窄
1.2、逻辑值检测
任何对象都可以进行逻辑值的检测,以便在 if 或 while 作为条件或是作为下文所述布尔运算的操作数来使用。
在默认情况下,一个对象会被视为具有真值
例外:
定义了返回 False 的 bool() 方法
定义了返回零的 len() 方法
具有假值的内置对象
被定义为假值的常量: None 和 False
任何数值类型的零: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
空的序列和多项集: '', (), [], {}, set(), range(0)
1.3、布尔运算
x or y --> 如果 x 为真值,则 x,否则 y
短路运算符,因此只有在第一个参数为假值时才会对第二个参数求值。
x and y --> if x is false, then x, else y
短路运算符,因此只有在第一个参数为真值时才会对第二个参数求值。
not x --> if x is false, then True, else False
1.4、常见的运算
abs(x) --> x 返回一个数字的绝对值。 参数可以是整数、浮点数或任何实现了 abs() 的对象。 如果参数是一个复数,则返回它的模。
pow(x, y) --> 同 x ** y --> x 的 y 次幂
Python 将 pow(0, 0) 和 0 ** 0 定义为 1
math.trunc(x) --> x 截断为 Int
math.floor(x) --> <= x 的最大 Int
math.ceil(x) --> >= x 的最小 Int
round(x[, n]) --> x 舍入到 n 位小数,半数值会舍入到偶数。 如果省略 n,则默认为 0。
is 和 ==
is 是判断两个标识符是不是引用自一个对象,类似id(x) == id(y)
==只是比价对象的值是否一致
<> 不等于
python3 已废弃
// 整除
返回商的整数部分(向下取整)
% 取模运算
与数学取余运算有区别,主要在负数运算时不同。原因和//有关
10%4 = 2 10//4=2 10-2*4=2
-10%7= 4 -10//7=-2 -10-(-2*7)=4
2.int(整数形)
构造函数 int()
int(string,base)
base
- 默认0
- 允许的基数为 0 和 2--36
进制转换10进制 16-->10
int('0xa', 16)
int('a', 16)
8进制/2进制同上
2.2、 在 3.6 版本发生变更 --> 可以使用下划线将代码文字中的数字进行分组。
2.3、转换-->16进制 --> hex()
2.4、转换-->8进制 --> oct()
2.5、转换-->2进制 --> bin()
2.6、CPython 对于 int 和 str 之间的转换有一个全局限制以缓解拒绝服务攻击。 此限制 仅会 作用于十进制或其他以非二的乘方为基数的数字
默认限制为 4300
超出限制时,将引发 ValueError
3.float(浮点型)
构造函数 float()
"Infinity" | "inf" --> 无穷大
"inf", "Inf", "INFINITY" 和 "iNfINity" 都是正无穷可接受的拼写形式
"nan" --> 空
在 3.6 版本发生变更 --> 可以使用下划线将代码文字中的数字进行分组。
3.1、float.hex()
以十六进制字符串的形式返回一个浮点数表示。 对于有限浮点数,这种表示法将总是包含前导的 0x 和尾随的 p 加指数。
>>> float.hex(3740.0)
'0x1.d380000000000p+11'
3.2、float.fromhex(s)
返回以十六进制字符串 s 表示的浮点数的类方法。 字符串 s 可以带有前导和尾随的空格。
>>> float.fromhex('0x3.a7p10')
3740.0
4.complex(复数)
构造函数 complex(re, im)
实部 re 、虚部 im,im默认0
5.bool(布尔值)
bool类型只有两个常量实例
True 表示真
False 表示假
bool() 可将任意值转换为布尔值
注意
bool 是 int 的子类 。 在许多数字场景下,False 和 True 的行为分别与整数 0 和 1 类似。 但是,不建议这样使用;请使用 int() 显式地执行转换。