- 6.7. 二元算术运算符
6.7. 二元算术运算符
二元算术运算符遵循传统的优先级。 请注意某些此类运算符也作用于特定的非数字类型。 除幂运算符以外只有两个优先级别,一个作用于乘法型运算符,另一个作用于加法型运算符:
- m_expr ::=
u_expr
|m_expr
"*"u_expr
|m_expr
"@"m_expr
|m_expr
"//"u_expr
|m_expr
"/"u_expr
|m_expr
"%"u_expr
- a_expr ::=
m_expr
|a_expr
"+"m_expr
|a_expr
"-"m_expr
运算符 *
(乘) 将输出其参数的乘积。 两个参数或者必须都为数字,或者一个参数必须为整数而另一个参数必须为序列。 在前一种情况下,两个数字将被转换为相同类型然后相乘。 在后一种情况下,将执行序列的重复;重复因子为负数将输出空序列。
运算符 @
(at) 的目标是用于矩阵乘法。 没有内置 Python 类型实现此运算符。
3.5 新版功能.
运算符 /
(除) 和 //
(整除) 将输出其参数的商。 两个数字参数将先被转换为相同类型。 整数相除会输出一个 float 值,整数相整除的结果仍是整数;整除的结果就是使用 'floor' 函数进行算术除法的结果。 除以零的运算将引发 ZeroDivisionError
异常。
运算符 %
(模) 将输出第一个参数除以第二个参数的余数。 两个数字参数将先被转换为相同类型。 右参数为零将引发 ZeroDivisionError
异常。 参数可以为浮点数,例如 3.14%0.7
等于 0.34
(因为 3.14
等于 4*0.7 + 0.34
)。 模运算符的结果的正负总是与第二个操作数一致(或是为零);结果的绝对值一定小于第二个操作数的绝对值 1。
整除与模运算符的联系可通过以下等式说明: x == (x//y)*y + (x%y)
。 此外整除与模也可通过内置函数 divmod()
来同时进行: divmod(x, y) == (x//y, x%y)
。 2。
除了对数字执行模运算,运算符 %
还被字符串对象重载用于执行旧式的字符串格式化(又称插值)。 字符串格式化句法的描述参见 Python 库参考的 printf 风格的字符串格式化 一节。
整除运算符,模运算符和 divmod()
函数未被定义用于复数。 如果有必要可以使用 abs()
函数将其转换为浮点数。
运算符 +
(addition) 将输出其参数的和。 两个参数或者必须都为数字,或者都为相同类型的序列。 在前一种情况下,两个数字将被转换为相同类型然后相加。 在后一种情况下,将执行序列拼接操作。
运算符 -
(减) 将输出其参数的差。 两个数字参数将先被转换为相同类型。