1,算术运算符
'''
+ 加 12.45 + 15 27.45
- 减 4.56 - 0.26 4.3
* 乘 5 * 3.6 18.0
/ 除法(和数学中的规则一样) 7 / 2 3.5
// 整除(只保留商的整数部分) 7 // 2 3
% 取余,即返回除法的余数 7 % 2 1
** 幂运算/次方运算,即返回 x 的 y 次方 2 ** 4
'''
2,赋值运算符
'''
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a
'''
a=1
a+=1 #a=a+1
print(a)
b=2
b**=3
print(b)
3,比较运算符
'''
> 大于,如果>前面的值大于后面的值,则返回 True,否则返回 False。
< 小于,如果<前面的值小于后面的值,则返回 True,否则返回 False。
== 等于,如果==两边的值相等,则返回 True,否则返回 False。
>= 大于等于(等价于数学中的 ≥),如果>=前面的值大于或者等于后面的值,则返回 True,否则返回 False。
<= 小于等于(等价于数学中的 ≤),如果<=前面的值小于或者等于后面的值,则返回 True,否则返回 False。
!= 不等于(等价于数学中的 ≠),如果!=两边的值不相等,则返回 True,否则返回 False。
'''
a=[1,2]
b=[1,2]
print(a > b)
4,逻辑运算符
'''
and 逻辑与运算,等价于数学中的“且” a and b 当 a 和 b 两个表达式都为真时,a and b 的结果才为真,否则为假。
or 逻辑或运算,等价于数学中的“或” a or b 当 a 和 b 两个表达式都为假时,a or b 的结果才是假,否则为真。
not 逻辑非运算,等价于数学中的“非” not a 如果 a 为真,那么 not a 的结果为假;如果 a 为假,那么 not a 的结果为真。相当于对 a 取反。
'''
5,身份运算符
'''
is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) ,
如果引用的是同一个对象则返回 True,否则返回 False
is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b)。
如果引用的不是同一个对象则返回结果 True,否则返回 False。
'''
a=[1,2]
b=[1,2]
print(a is b)
print(a is not b)
6,成员运算符
in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 ,
如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 ,
如果 x 不在 y 序列中返回 True。
7,链式赋值、交叉赋值、解压赋值
8,短路运算
'''
与运算:只有两个布尔值都为 True 时,计算结果才为 True。
True and True # ==> True
True and False # ==> False
False and True # ==> False
False and False # ==> False
或运算:只要有一个布尔值为 True,计算结果就是 True。
True or True # ==> True
True or False # ==> True
False or True # ==> True
False or False # ==> False
在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;
如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;
如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。
所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果
'''
#布尔运算时,只要不为空,都是True
#0 0.0 "" () [] {} set() None 都是False
9,运算符优先级
'''
优先级 同等级运算顺序(从右到左,从左到右)
小括号 ( ) 19 无
索引运算符 x[i] 或 x[i1: i2 :i3] 18 左
属性访问 x.attribute 17 左
乘方 ** 16 右
按位取反 ~ 15 右
符号运算符 +(正号)、-(负号) 14 右
乘除 *、/、//、% 13 左
加减 +、- 12 左
位移 >>、<< 11 左
按位与 & 10 右
按位异或 ^ 9 左
按位或 | 8 左
记忆:
比较运算符 ==、!=、>、>=、<、<= 7 左
is 运算符 is、is not 6 左
in 运算符 in、not in 5 左
逻辑非 not 4 右
逻辑与 and 3 左
逻辑或 or 2 左
逗号运算符 exp1, exp2 1 左
'''
10,小练习
#一:
#输入一个数字x,传入表达式(x+10)*8/2//3%10,后对结果求三次方,输出结果(输入和输出要有提示)
x=int(input("请输入一个数字:"))
y=((x+10)*8/2//3%10)**3
print("(x+10)*8/2//3%10)**3的三次方=",y)
#二:
#输入两个整型或浮点数进行(随便选一个比较运算符)进行比较操作
x=int(input("请输入一个整数:"))
y=int(input("请输入一个整数:"))
print(x>y)
#三:
#输入一个数判断它是否在列表[1,'二',3.1,True]中
x=input("请输入一个数:")
print(x in [1,'二',3.1,True])
#四:
#求短路运算 10 and 5 or '' and 9 返回的结果
print(10 and 5 or '' and 9)