python运算符使用
*****
| 运算符 | 说明 | 示例 | 结果 |
| --- | --- | --- | --- |
| + | 加法 | 3+5 | 8 |
| - | 减法 | 5-3 | 2 |
| * | 乘法 | 3*5 | 15 |
| / | 除法 (浮点数) | 15/3 | 5.0 |
| // | 商(整除) | 7/3 | 2 |
| % | 除法 (取余) | 7/4 | 3 |
| ** | 冥 | 10**3(相当于`$ 10^3 $`) | 1000 |
使用divmode(7,3)函数会同时得到商和余数,返回的只是一个元组(数组):
```
>>>divmode(7,3)
(2,1)
```
>[danger] 注:在python中 0 不能为除数
<br>
**增强型赋值运算符**
运算符和 = 结合可以构成增强型赋值运算符
| 运算符 | 示例 | 等价 |
| --- | --- | --- |
| += | a += 2 | a = a + 2 |
| -= | a -= 2 | a = a - 2 |
| * | a *= 2 | a = a * 2 |
| / | a /= 2 | a = a / 2 |
| // | a //= 2 | a = a // 2 |
| % | a %= 2 | a = a % 2 |
| ** | a **= 2 | a = a ** 2 |
<br>
**比较运算符**
比较运算符 返回1为真,返回0为假,分别于True和False等价
以下假设变量a = 2 , b = 3
| 运算符 | 解释 | 例 |
| --- | --- | --- |
| == | 两边的值相等 | (a == b) 返回False |
| != | 两边的值不相等 | (a != b) 返回True |
| > | 大于 | (a > b) 返回False |
| < | 小于 | (a < b) 返回True |
| >= | 大于等于 | (a >= b) 返回False |
| <= | 小于等于 | (a <= b) 返回True|
<br>
**逻辑运算符**
| 运算符 | 格式 | 说明 |
| --- | --- | --- |
| or <br> 逻辑与 | a or b | a为True, 则返回True <br> a为false, 则返回b |
| and <br> 逻辑或 | a and b | a为True, 则返回b <br> a为false, 则返回false |
| not <br> 逻辑非 | a not b | a为True, 则返回false <br> a为false, 则返回true |
>[danger] 逻辑运算符会存在短路现象
> 例: true or 30/0 后边的表达式语法报错 但是因为第一个值为true 后面就不会执行 表达式直接返回True
> false and 30/0 后边的表达式语法报错 但是因为第一个值为false 后面就不会执行 表达式直接返回false
<br>
**同一运算符**
同一运算符用于标胶两个对象的储存单元,实际比较的是对象的地址
| 运算符 | 描述 |
| --- | --- |
| is | is是判断两个标识符是否引用了同一个对象 |
| is not | is not是判断两个标识符是否引用了不同的对象 |
>is与 == 的区别
> is是判断两个变量是否引用了同一个对象,即比较对象的地址
>==是判断变量引用对象的值是否相等,默认调用对象的__eq__()方法
>[danger] 整数缓存问题
> * 在命令行中python 仅对比较小的整数进行,缓存范围为(-5,256)而并非所有整数对象,
> * 在python脚本文件中,因为解释器做了优化,返货阔大(-5,任意大小)