相关链接
"""
@author GroupiesM
@date 2022/4/27 12:15
@introduction python运算符
"""
1.算术运算符
1.1 标准算术运算符 [+、-、*、/、//] //表示整除,向下取整
1.2 取余运算符 [%]
1.3 幂运算符 [**]
2.赋值运算符
执行顺序: 右->左
支持链式赋值: a=b=c=20
支持参数设置: +=、-=、*=、/=、//=、%=
支持系列解包赋值: a,b,c=20,30,40
3.比较运算符
[>、<、>=、<=、!=]
== -> 对象value的比较
is,is not 对象id的比较
4.布尔运算符
and 且
or 或
not 取反
in ('xx','xx',...) 在范围内
not in ('xx','xx',...) 不在范围内
5.位运算符
& 位与 :对应数位都是1,结果数位才是1,否则为0
| 位或 :对应数位都是0,结果位数才是0,否则为1
<< 左位移 :高位溢出舍弃,低位补0
>> 右位移 :低位移除舍弃,高位补0
"""
@author GroupiesM
@date 2022/4/27 12:17
@introduction 常用运算符01
1.算术运算符
1.1 标准算术运算符 [+、-、*、/、//] //表示整除,向下取整
1.2 取余运算符 [%]
1.3 幂运算符 [**]
"""
# 1.1 标准算术运算符
print(1 + 1) # 2
print(1 - 1) # 0
print(2 * 3) # 6
print(1 / 2) # 0.5 除
print(11 // 2) # 5 整除
# 1.2 取余运算符
print(11 % 2) # 1
# 1.3 幂运算符
print(2 ** 4) # 16 2^4 = 2*2*2*2 = 16
# 复杂情况
# 整除
print(-9 // -2) # 4 (4.5 向下取整=4)
print(-9 // 2) # -5 (-4.5 向下取整=-5)
# 余数 (被除数-除数*商)
print(9 % 4) # 1 9-4*2 = 9-8 = 1
print(9 % -4) # -3 9-(-4)*(-3) = 9 - (12) = -3
print(-9 % -4) # -1 -9-(-4)*2 = -9 + 8 = -1
"""
@author GroupiesM
@date 2022/4/27 13:29
@introduction 常用运算符02
2.赋值运算符
执行顺序: 右->左
支持链式赋值: a=b=c=20
支持参数设置: +=、-=、*=、/=、//=、%=
支持系列解包赋值: a,b,c=20,30,40
"""
a = 3 + 4
print(a) # 7
"""
支持链式赋值: a=b=c=20
"""
a = b = c = 3
"""
支持系列解包赋值
"""
print(a + b + c) # 9
a, b, c = 4, 5, 6
print(a + b + c) # 15
a = 1
a += 1
print(a) # 2
a *= 3
print(a) # 6
a /= 5
print(a) # 1.2
"""
@author GroupiesM
@date 2022/4/27 13:41
@introduction 常用运算符03
3.比较运算符
[>、<、>=、<=、!=]
== -> value的比较
is,is not 内存地址比较
"""
a, b = 10, 20
print('a>b?', a > b) # False
print('a, a < b) # True
print('a>=b?', a >= b) # False
print('a<=b?', a <= b) # True
print('a!=b?', a != b) # True
print('a == b?', a == b) # False (值不同)
print('a is b?', a is b) # False (内存地址不同)
print('a is not b?', a is not b) # True
"""
对于基本类型 值相同内存地址就相同
"""
a, b = 30, 30
print('a == b?', a == b) # True
print('a is b?', a is b) # True 内存地址相同
print('a is not b?', a is not b) # False
"""
对于引用类型 值相同,引用类型不一定相同
"""
list1 = [11, 22, 33, 44]
list2 = [11, 22, 33, 44]
print(list1 == list2) # True
print(list1 is list2) # False 内存地址不同
print(id(list1), id(list2)) # 4370292096 4370298624
list2 = list1
print(list1 is list2) # True 内存地址相同
print(id(list1), id(list2)) # 4370292096 4370292096
"""
@author GroupiesM
@date 2022/4/27 13:52
@introduction 常用运算符04
4.布尔运算符
and 且
or 或
not 取反
in ('xx','xx',...) 在范围内
not in ('xx','xx',...) 不在范围内
"""
a, b = 1, 2
t = a == 1
f = a > 1
print("-----and 且-----")
print(t and t) # True
print(t and f) # False
print(f and f) # False
print("-----or 或-----")
print(t or t) # True
print(t or f) # True
print(f or f) # False
print("-----not 取反-----")
print(not t) # False
print(not f) # True
print("-----in-----")
'''整型'''
print(3 in (3, 4, 5)) # True
print(7 in (1, 2, 3)) # False
'''字符串'''
print('p' in 'python') # True
print('p' in 'java') # False
'''列表'''
print(5 in [5, 6, 7]) # True
print('5' in [5, 'hello', True]) # False
print("-----not in-----")
print(3 not in (3, 4, 5)) # False
print(7 not in (1, 2, 3)) # True
"""
@author GroupiesM
@date 2022/4/27 14:01
@introduction 常用运算符05
5.位运算符
& 位与 :对应数位都是1,结果数位才是1,否则为0
| 位或 :对应数位都是0,结果位数才是0,否则为1
n<>m n右位移m位 :低位移除舍弃,高位补0,右移一位相当于/2
"""
# 4 : 0000 1000
# 8 : 0001 0000
""" &位与:对应数位都是1,结果数位才是1,否则为0
0000 1000
0001 0000
---------
0000 0000
"""
print(4 & 8) # 0
""" |位或:对应数位都是0,结果位数才是0,否则为1
0000 1000
0001 0000
---------
0001 1000 -> 12
"""
print(4 | 8) # 12
""" n< 8
"""
print(4 << 1) # 8
"""n>>m n右位移m位:低位移除舍弃,高位补0
0000 0100
---------- 右移2位
00 0001 00
---------- 低位舍弃,高位补0
0000 0001 -> 1
"""
print(4 >> 2) # 1
"""
@author GroupiesM
@date 2022/4/27 14:20
@introduction
"""
运算符优先级:
()括号 > 1.算数运算 :1.3幂运算 > 1.1标准算数运算符[*、/、//、%] > 1.1标准算数运算符[+、-]
> 5.位运算 : [<<、>>] > [&] > [|]
> 3.比较运算符 [>、<、>=、<=、!=]
> 4 布尔运算符[and] > 4 布尔运算符[or]
> 2 赋值运算符
22/06/27
M