目录
什么是运算符?
运算符是用来进行计算的符号
---------------------------------------------------------------------------------------------------------------------------------
运算符的种类及具体例子
算数运算符
符号 | 作用 |
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
// | 整除 |
% | 取余数 |
** | 指数 |
() | 提高运算的优先级 |
混合运算的优先级:() > ** > *、/、//和% > +和-
下面是在 python 控制台中进行算数运算的实例
至于最后一行的 1-1.23 的结果显示有误差的原因,简单来说这是电脑的二进制的运算造成的。详细的解释可以看这篇文章:
python - 为什么浮点数运算会产生误差 - 疯狂的技术宅 - SegmentFault 思否
赋值运算符
= | 赋值 | 将=右侧的结果给到左边的变量 |
赋值是将等号右边的数据(优先级较高)给到等号左边的变量(优先级较低)。
常见的形式就是
num = 1
这是典型的单个变量的赋值。
那能不能进行多个变量的赋值呢?当然可以
形式为:
变量1, 变量2, 变量3 = 值1, 值2, 值3
注意,将数据赋值给变量是一一对应的,也就是说等号右边的第一个值赋给等号左边第一个变量(从左往右数)
当然也可以将一个值赋给多个变量
变量1 = 变量2 = 变量3 = 值
这个也不难理解,根据“赋值是将等号右边的数据(优先级较高)给到左边的变量(优先级较低)”这句话,该代码的运行就是先将值赋给变量3,然后将变量3中存的值赋给变量2,最后在赋给变量1。最终结果就显示为变量123都具有一样的值(多个变量也是一样的过程)。
但是不可以用这种形式将多个值赋给同一个变量,这是因为一个确定的数值是不可能给到另一个确定的数的。
复合赋值运算符
+= | 加法赋值运算符 | 先将等号右边的值与左边的值相加,再将加好的结果赋值给变量(a += b等价于 a = a + b) |
-= | 减法赋值运算符 | 先将等号右边的值与左边的值相减,再将减好的结果赋值给变量(a -= b等价于 a = a - b) |
*= | 乘法赋值运算符 | 先将等号右边的值与左边的值相乘,再将乘好的结果赋值给变量(a *= b等价于 a = a * b) |
/= | 除法赋值运算符 | 先将等号右边的值与左边的值相除,再将除好的结果赋值给变量(a /= b等价于 a = a / b) |
//= | 整除赋值运算符 | 先将左边的值整除等号右边的值,再将结果赋值给变量(a //= b等价于 a = a // b) |
%= | 取余赋值运算符 | 先将等号左边的值对右边的值取余,再将结果赋值给变量(a %= b等价于 a = a % b) |
**= | 指数赋值运算符 | 先将等号左边的值为底数,右边的值为指数,再将结果赋值给变量(a **= b等价于 a = a ** b) |
注意等号左边的变量必须要有值才可以进行复合运算符的计算,这就是表格中为什么要强调“左边的值”的原因。
举例:
a = 12
a += 12
print(a)
结果显示为24。
那如果赋值运算符右边不是数值而是运算式呢?复合赋值运算符的执行优先级是小于算数运算符的优先级的,也就是说是先算数,再进行复合赋值。
举个简单的例子:
a = 12
a += 2 * 2
print(a)
如果程序不是先算数后复合赋值的话,那么结果应该为28,但是真正在python中运行时,其结果为16.
比较运算符
比较运算符通常用来判断,与后面的if条件语句有较大的联系。
== | 判断是否相等,如果是,则为条件结果为真,反之为假 |
!= | 判断是否不等,如果是,则为条件结果为真,反之为假 |
> | 判断是否大于,如果是,则为条件结果为真,反之为假 |
< | 判断是否小于,如果是,则为条件结果为真,反之为假 |
>= | 判断是否大于等于,如果是,则为条件结果为真,反之为假 |
<= | 判断是否小于等于,如果是,则为条件结果为真,反之为假 |
比较运算符返回的结果是布尔型的数据,也就是True和False。
逻辑运算符
and | “与” | x and y | 都真才真 |
or | “或” | x or y | 都假才假 |
not | “非” | not x | 取反,若x为真,则not x 返回假 |
逻辑运算符具有连接多个判断语句的作用,同电路中的“与门”、“或门”和“非门”作用类似。