数字类型:数字提供了标量贮存和直接访问。它是不可更改类型。Python 支持多种数字类型:整型、长整型、布尔型、双精度浮点型、十进制浮点型和复数。
创建数值对象和给变量赋值一样
删除数字对象 使用del语句。
Python 的四种主要数字类型。
整型:布尔类型是只有两个值的整型。常规整型是绝大多数现代系统都能识别的整型。Python 也有长整数类型。
双精度浮点数:浮点数值通常都有一个小数点和一个可选的后缀 e。在 e和指数之间可以用正(+)或负(-)表示指数的正负
复数:一个实数和一个虚数的组合构成一个复数。一个复数是一对有序浮点数(x, y)。表示为 x + yj, 其中 x 是实数部分,y 是虚数部分。
虚数不能单独存在,它们总是和一个值为 0.0 的实数部分一起来构成一个复数。
复数由实数部分和虚数部分构成
表示虚数的语法: real+imagj
实数部分和虚数部分都是浮点数
虚数部分必须有后缀 j 或 J。
例:64.375+1j 4.23-8.5j
复数的属性:
num.real 该复数的实部
num.image 该复数的虚部
num.conjugate() 该复数的共轭复数
运算符
混合模式运算符
数字类型之间的转换是自动进行的,程序员无须自己编码处理类型转换。不过在确实需要明确指定对某种数据类型进行特殊类型转换的场合,Python 提供了 coerce() 内建函数来帮助你实现这种转换。
地板除:// 除法不管操作数何种数值类型,总是舍去小数部分,返回数字序列中比真正的商小的最接近的数字。
幂运算:幂运算操作符比其左侧操作数的一元操作符优先级高,比起右侧操作数的一元操作符的优先级低。** 运算符优先级高于单目运算符
位运算符:
负数会被当成正数的 2 进制补码处理。
左移和右移 N 位等同于无溢出检查的 2 的 N 次幂运算: 2**N。
对长整数来说, 位运算符使用一种经修改的 2 进制补码形式,使得符号位可以无限的向左扩展。取反(~)运算的优先级与数字单目运算符相同, 是所有位操作符中优先级最高的一个。 左移和右移运算的优先级次之,但低于加减法运算。与, 或, 异或 运算优先级最低。
内建函数与工厂函数
转换工厂函数
函数 int(), long(), float() 和 complex() 用来将其它数值类型转换为相应的数值类型。bool()。它用来将整数值 1 和 0 转换为标准布尔值 True 和 False.
功能函数:abs()返回给定参数的绝对值。如果参数是一个复数, 那么就返回 math.sqrt(num.real2num.imag2)。
coerce()为程序员提供了不依赖 Python 解释器, 而是自定义两个数值类型转换的方法。函数 coerce()仅回一个包含类型转换完毕的两个数值元素的元组。
divmod()内建函数把除法和取余运算结合起来, 返回一个包含商和余数的元组。对整数来说,它的返回值就是地板除和取余操作的结果。对浮点数来说, 返回的商部分是math.floor(num1/num2),对复数来说, 商部分是 ath.floor((num1/num2).real)。
pow() 和双星号 (**) 运算符都可以进行指数运算。
round()用于对浮点数进行四舍五入运算。它有一个可选的小数位数参数。如果不提供小数位参数, 它返回与第一个参数最接近的整数(但仍然是浮点类型)。第二个参数告诉 round 函数将结果精确到小数点后指定位数。
注意区分下面的三个函数:
函数 int()直接截去小数部分。(返回值为整数)
函数 floor()得到最接近原数但小于原数的整数。(返回值为浮点数)
函数 round()得到最接近原数的整数。(返回值为浮点数)
仅用于整数的函数:一类用于进制转换,另一类用于 ASCII 转换。
oct()和 hex()。它们都接受一个整数(任意进制的)对象,并返回一个对应值的字符串对象。
函数 chr()接受一个单字节整数值,返回一个字符串,其值为对应的字符。函数 ord()则相反,它接受一个字符,返回其对应的整数值。unichr(num)接受Unicode码值,返回 其对应的Unicode字符。
布尔数
尽管布尔值看上去是“True” 和“False,但是事实上是整型的子类,对应与整数的 1 和 0。
十进制浮点数:
不能混用十进制浮点数和普通的浮点数。你可以通过字符串或其它十进制数创建十进制数浮点数。你必须导入 decimal 模块以便使用 Decimal 类