五、运算和运算符
#运算:一个或者一个以上的数据经过变化得到新值的过程。
#运算符:用于运算的符号就是运算符
'''
分类:
1.算数运算
2.比较运算(关系运算)
3.赋值运算
4.逻辑运算
5.位运算
6.成员运算
7.身份运算
'''
#1.算数运算
'''
+ 加法运算
- 减法运算
* 乘法运算
/ 除法运算
// 地板除运算(取商运算)
% 取余运算(求模运算)
** 幂运算
'''
#加法运算
result = 5 + 19
print(result)
#减法运算
result = 88 - 36
print(result)
#乘法运算
result = 3 * 5
print(result)
#除法运算
result = 6 / 3
print(result)
#取商运算
result = 65 // 6
print(result)
#取余运算
result = 6 % 14
print(result)
#幂运算
result = 4 ** 3
print(result)
#比较运算
'''
> 大于运算
< 小于运算
>= 大于等于
<= 小于等于
== 等于
!= 不等于
'''
#大于运算
result = 8 > 7
print(result)
#小于运算
result = 8 < 10
print(result)
#大于等于
result = 8 >= 7
print(result)
#小于等于
result = 9 <= 87
print(result)
#等于
result = 9 == '9'
print(result)
#不等于
result = 8 != 7
print(result)
#赋值运算
'''
= 普通赋值运算
+= 加法赋值运算
-= 减法赋值运算
*= 乘法赋值运算
/= 除法赋值运算
//= 取商赋值运算
%= 取余赋值运算
'''
#= 普通赋值运算
result = 99
print(result)
#加法赋值运算
var = 18
var += 2#var = var + 2
print(var)
#减法赋值运算
var = 18
var -= 10#var = var - 10
print(var)
#乘法复制运算
var = 8
var *= 6#var = var * 6
print(var)
#除法赋值运算
var = 18
var /= 3#var = var / 3
print(var)
#取商赋值运算
var = 20
var //= 7#var = var // 7
print(var)
#取余赋值运算
var = 19
var %= 5#var = var % 5
print(var)
#幂赋值运算
var = 5
var **= 3#var = var ** 3
print(var)
#4.逻辑运算 :仅仅发生在布尔值之间的运算
'''
and 逻辑与运算
or 逻辑或运算
not 逻辑非运算
没有异或运算
'''
#逻辑与运算(有假则假)
var1 = False
var2 = False
result = var1 and var2
print(result)
#逻辑或运算(有真则真)
var1 = False
var2 = False
result = var1 or var2
print(result)
#逻辑非运算(真变假,假便真)
var = False
result = not var
print(result)
#位运算
'''
1.& 按位与运算
2.| 按位或运算
3.~ 按位非运算
4.^ 按位异或运算
5.<< 左移运算
6.>> 右移运算
'''
#按位与运算
var1 = 19#10011
var2 = 15#01111
result = var1 & var2
print(result)
#按位或运算
var1 = 15#1111
var2 = 11#1011
result = var1 | var2
print(result)
#按位非运算
var = 9#1001
result = ~var
print(result)
#按位异或运算
'''
逻辑异或运算:相同为假,不同为真
True xor True -> False
True xor False -> True
False xor True -> True
False xor False -> False
'''
var1 = 10#1010
var2 = 9# 1001
result = var1 ^ var2#11
print(result)
#左移运算(左移1位相当于乘以2)
var = 5
result = var << 3
print(result)
#成员运算
'''
in 检测一个数值是否在制定的容器当中
not in 检测一个数值是否不再制定的容器当中
'''
#in
#lists = {'西施','貂蝉','王昭君','杨玉环'}
dicts = {'xs':'西施','dc':'貂蝉','wzj':'王昭君','yyh':'杨玉环'}#字典检测的是键!
result = 'xs' in dicts
print(result)
#not in
lists = ['陈圆圆','李师师','杜十娘','齐婷婷']
result = '杨贵妃' not in lists
print(result)
#字符串也可以使用成员检测
strs = '乌镇互联网大会,各大大佬云集!'
result = '小' in strs
print(result)
#右移运算(右移1位相当于地板除以2)
var = 19 #10011
result = var >> 2
print(result)
#身份运算
'''
is 检测2个数据在内存中是否是同一个值
is not 检测2个数据在内存中是否不是同一个值
'''
#is
'''
整数 :-5 ~ 正无穷 都是相同的id
浮点数: 0 ~ 正无穷
布尔值:相同
复数:除了0j都不相同哦
字符串:只要内容相同,id一定相同
列表:一定不同
元组:只有空元祖相同,其余不同
集合:一定不同
字典:一定不同
'''
var1 = {1:1}
var2 = {1:1}
result = var1 is var2
print(result)
print(id(var1))
print(id(var2))
#is not
var1 = 1
var2 = 2
result = var1 is not var2a
print(result)
print(id(var1))
print(id(var2))