- 内置的数值运算 *** 作符
- 内置的数值运算函数
- 内置的数字类型转换函数
Python 提供了 9 个基本的数值运算 *** 作符。这些 *** 作符由 Python 解释器直接提供,不需要引用标准或第三方函数库,也叫做内置 *** 作符。
*** 作符 | 描述 |
---|---|
x + y | x 与 y 之和 |
x - y | x 与 y 之差 |
x * y | x 与 y 之积 |
x / y | x 与 y 之商 |
x // y | x 与 y 之整数商,即不大于 x 与 y 之商的最大整数 |
x % y | x 与 y 之商的余数,也称为模运算 |
-x | x 的负值,即 x * (-1) |
+x | x 本身 |
x ** y | x的y次幂,即 xy |
这9个 *** 作符与数学习惯一致,运算结果也符合数学意义。 *** 作符运算的结果可能改变数字类型,3种数字类型之间存在一种逐渐扩展的关系,具体如下:
整数 -> 浮点数 -> 复数
基于上述扩展关系,数字类型之间相互运算所生成的结果是”更宽“的类型,基本规则如下:
(1) 整数之间运算,如果数学意义上的结果是小数,那么结果是浮点数
(2) 整数之间运算,如果数学意义上的结果是整数,那么结果是整数
(3) 整数和浮点数混合运算,输出结果是浮点数
(4) 整数或浮点数与复数运算,输出结果是复数
print(100 / 3)
33.333333333333336
print(100 // 3)
33
print(123 + 4.0 )
127.0
print(10.0 - 1 + 2j) # 等价于 (10.0 - 1)+ 2j
(9+2j)
所有的二元数学 *** 作(+、-、、/、//、%、** )都有与之对应的增强赋值 *** 作符(+=、-=、=、/=、//=、%=、 **=)。如果用 op表示这些二元数学 *** 作符,则下面两个赋值 *** 作等价,注意, op 和二元 *** 作符之间没有空格:
x op= y
等价于
x = x op y
增强赋值 *** 作符获得的结果写入变量 x 中,简化了代码表达,例如:
x=3.0
x **= 3 # 等价于 x = x ** 3
print(x)
内置的数值运算函数27.0
Python 解释器提供了一些内置函数。其中,有 6 个函数与数值运算相关。
函数 | 描述 |
---|---|
abs(x) | x 的绝对值 |
divmod(x,y) | (x//y,x%y),输出为二元组形式(也称为元组类型) |
pow(x,y[,z]) | (x**y)%z,[…]表示该参数可以省略,即 pow(x,y) ,它与 xy 相同 |
round(x[, ndigits]) | 对 x 四舍五入,保留 ndigits 位小数。round(x) 返回四舍五入的整数值 |
max(x1,x2,…,xn) | x1,x2,…,xn 的最大值,n 没有限定 |
min(x1,x2,…,xn) | x1,x2,…,xn 的最小值,n 没有限定 |
abs() 可以计算复数的绝对值。复数的绝对值是二维坐标系中复数位置到坐标原点的长度。例如:
a=abs(-3 + 4j)
print(a)
5.0
pow() 函数第三个参数 z 是可选的,使用该参数时,模运算与幂运算同时进行,速度很快。例如,求 3 的 3999 次幂结果的最后 4 位。从 Python 语法角度,**pow(3,pow(3,999))%10000 ** (请不要在计算机中尝试该语句)和 pow(3,pow(3,999),10000) 都能完成计算需求。但是,前者是先求幂运算结果再进行模运算,由于幂运算结果数值巨大,上述计算在一般计算机上无法完成;而第二条语句则在幂运算同时进行模运算,可以很快计算出结果。例如:
a=pow(3,pow(3,999),10000) # 幂运算和模运算同时进行,速度快
print(a)
4587
模运算
模运算(%)在编程中十分常用,主要应用于具有周期规律的场景。例如,一个星期 7天,用 day 代表日期,则 day%7 可以表示星期;对于一个整数 n,n%2 的取值是 0 或者 1,可以判断整数 n d 奇偶。本质上,整数的模运算 n%m 能够将整数 n 映射到 [0, m-1] 的区间中。
数值运算 *** 作符可以隐式地转换输出结果的数字类型,例如,两个整数采用运算符 “/” 的除法将可能输出浮点数结果。此外,通过内置的数字类型转换函数可以显式地在数字类型之间进行转换。
函数 | 描述 |
---|---|
int(x) | 将 x 转换为整数,x 可以是浮点数或字符串 |
float(x) | 返回整数 x 或者字符串 x 所对应的浮点数类型 |
complex(re[, im]) | 生成一个复数,实部为 re,虚部为 im,re 可以是整数、浮点数或字符串,im 可以是整数或浮点数但不能为字符串 |
例如:
a=int(10.99)
print(a)
10
b=complex(10.99)
print(b)
(10.99+0j)
c=float(10 + 99j) # 解释器会报 TypeError 错误,并给出该错误的基本描述
print(c)
Traceback (most recent call last):
File “D:\pythonProject\venv\src\test.py”, line 1, in
c=float(10 + 99j)
TypeError: float() argument must be a string or a real number, not ‘complex’
d=float((10 + 99j).imag)
print(d)
99.0
这次的分享就到这里啦,要继续加油哦~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)